[Everything:速度最快的文件名搜索工具] ( http://xbeta.info/everything-search-tool.htm)

Everything(官网|中文主页|教程)是速度最快的文件名搜索软件。其速度之快令人震惊,百G硬盘几十万个文件,可以在几秒钟之内完成索引;文件名搜索瞬间呈现结果。它小巧免费,支持中文,支持正则表达式,可以通过HTTP或FTP分享搜索结果。如果不满意Windows自带的搜索工具、Total Commander的搜索、Google 桌面搜索或百度硬盘搜索,如果正在使用或放弃了Locate32,都值得推荐这款体积小巧、免安装、免费、速度极快(比Locate32更快)的文件搜索工具Everything!

【相关链接】英文主页中文主页官方下载纯中文语言包

一、Everything简介

Everything是voidtools中文主页)开发的一款文件搜索工具,官网描述为“基于名称实时定位文件和目录(Locate files and folders by name instantly)”。它体积小巧,界面简洁易用,快速建立索引,快速搜索,同时占用极低的系统资源,实时跟踪文件变化,并且还可以通过http或ftp形式分享搜索。

注意:
- 只搜索文件名,不能搜索文件内容;
- 只适用NTFS文件系统,不适合FAT32;
- 完美支持中文(自V1.2.x开始)。

二、初级教程:Everything的基本用法

2.1 下载与安装

下载链接:
  官方下载页 (无论下载Everything还是其他任何软件,都推荐到官方网站)
版本选择:
  普通用户推荐稳定版:Everything-1.2.1.371.exe 安装包 (334 KB)Everything-1.2.1.371.zip 便携版 (272 KB)
  高级用户可下载最新测试版:http://www.voidtools.com/Everything-1.2.1.451a.zip
  安装或解压Everything,即可开始使用。

2.2 首次运行

Everything在第一次运行时,会建立索引数据库。但你丝毫不用担心,其速度极快,生成的索引文件极小!看看本文下面的回复,你会充满信心。亲身体验之后,你或者也会为其速度震惊。或者,你根本没感觉到它需要建立索引。
索引之后,简洁的程序界面呈现在你的面前,程序状态栏中还会显示索引的文件数量。看到这个数字,你是否惊奇Everything的神速呢?

2.3 基本搜索

尽管Everything还处在英文界面,但这并不影响你的基本使用。只须在搜索框中,输入几个字母或汉字,搜索结果就会实时呈现在你的眼前。然后,可以直接双击某条结果,打开文件。也可以直接在结果中进行复制、删除等常见操作。

2.4 切换为中文界面

- 下载:xbeta简中语言包(链接)(推荐)或官方多语言包(链接);
- 解压:解压语言包内的Everything.lng到程序目录;
- 重启Everything(如果需要);
- 菜单:Tools→ Options→ General→ Language→ 简体中文。

说明1:官方多语言包 vs xbeta简中语言包
  - 前者包括了简体中文在内的更多种语言;当然,体积更大。
  - 前者的简体中文,也是来自xbeta的翻译;
  - 据网友反映,前者存在默认识别为日文的bug,所以,推荐xbeta自行发布的简中语言包;
  - 后者更新更加及时。

说明2:
  切换语言后,需要重启Everything才能看到效果。而点击Everything窗口的关闭按钮后,它只是缩小为托盘图标,并没有真正关闭,所以,要右键退出。

三、Everything搜索技巧

3.1 高效搜索之“与”“或”

技巧:在Everything的搜索框中可以输入多个关键词,以空格分开,表示搜索结果要包括全部关键词。大家肯定对这种做法不会陌生,因为它正是搜索引擎的惯例。

举例:键入(不包括引号,下同)“李白 北京 08 jpg”,可以快速找出某些照片。

技巧:对应“与”的还有“或”(OR)运算,用半角竖线表示:|。当你不确信关键词的准确描述时,这种方式非常有用。

举例:“jpg 李白|libai 北京 08”、“免费|freeware”……

引伸:既然空格表示“与”,那么如何表示真正的空格呢?很简单,加英文半角引号,比如”program files”。

3.2 正则表达式

Everything支持正则表达式,或者说,支持一些简单的正则表达式。但对大多数用户而言,这已经足够了!Everything支持的正则表达式有:
| () ? * + . [] [^] ^ $ {m,n}

详见官方FAQ(英文中文翻译)。鸣谢朱晨刚、rex

【转载】在使用之前,确保已经打开正则表达式选项(菜单Search → Enable Regex)
  • | 竖线表示或。例如:gray|grey 能够匹配 gray或grey(注:在|两侧没有空格)。
  • () 小括号用于确定范围。例如:gr(a|e)表示在gr和y之间有一个字母a或e。gr(a|e)y将匹配gray或grey,与gray|grey意义相同。
  • ? 问号表示其前一个字符可能出现,也有可能不出现。例如:colou?r将匹配color和colour。
  • * 星号表示其前一个字符可能不出现,也可能出现一次或多次。例如:ab*c将匹配ac、abc、abbc、abbbc等等。
  • + 加号表示其前一个字符出现一次或多次。例如:ab+c将匹配abc、abbc、abbbc等等,但不能匹配ac。
  • .点号可用匹配任何单个非新行字符。(事实上,把哪个字符称之为新行却是不一定的,可能是编码特别或位置特别,但是可以肯定的是这个行中一定包含其他字符。)在POSIX括号表达式规则中,点号只匹配一个点。例如:a.c可以匹配abc等等字符,但是[a.c]只匹配a、.、或c。
  • [ ] 中括号表示能够匹配其括号内出现的一个字符。例如:[abc]能够匹配a、b或c。[a-z]将能够匹配a到z之间的任意一个字符。[abcx-z]能够匹配a、b、c、x、y或z,其也可以表示成[a-cx-z]。
  • [^ ] [^ ]表示可以匹配任何一个没有出现在其括号内的字符,与[ ]刚好相反。例如:[^abc]能够匹配任何一个不是a、b、c的字符。[^a-z]能够匹配任何一个非小写字母之外的字符。
  • ^ 匹配名称开始的位置。在以行为基础的工具中,匹配任意行的开始位置。
  • $ 匹配名称结束的位置,或者匹配字符串结尾新行的结束位置。在以行为基础的工具中,匹配任意行的结束位置。
  • {m,n} {m,n}表示其前面的字符至少重复m次,但是重复次数少于n。例如:a{3,5}匹配aaa、aaaa以及aaaaa,但是不能匹配aa或aaaaaa。此表达规则在一些老的版本中不可用。

3.3 指定搜索范围

默认情况下,Everything索引、搜索所有本地NTFS磁盘的所有目录。但是你可以通过如下方式,限定搜索范围,以得到更易用的结果列表。

- 希望Everything永不索引某个磁盘,请在“选项”-“NTFS磁盘”中,选定相应盘符,取消“搜索本卷”或“包含在数据库中”。(注:可以取消前一项,这样后一项就自动变灰——但没发现这种做法与只取消后一项的差别。大家可以研究一下!)

- 希望永远排除某些目录,可以在“选项”-“排除列表”中设定。和上条方法一样,确认之后Everything会重新生成索引。

- 希望Everything只搜索某个目录,可以在资源管理器或Total Commander中,右击该目录,在弹出菜单上选“Search Everything…”。这时你会看到Everything的搜索框中,出现了带引号的目录名。(需要在Everything Options的General Tab上选中“Show shell context menu”)

- 与上一方法相同,只是不用右击目录,而是直接输入带引号的目录名,再输入搜索关键词。需要注意的是:目录名一定是完整路径,且用半角双引号括起来,不能选中“使用正则表达式”。

- 还有一种方法,使用起来要头脑更清楚才行。比如,设定“匹配路径”后,输入 files/ .exe,看看搜到了什么结果,想想这是为什么。

3.4 网络分享

Everything内置了HTTP、ETP/FTP服务器。这意味着,你可以用它当作简单的服务器来用。何况,它的HTTP分享,仍然提供了强大的搜索功能。

HTTP分享:点击菜单“工具”-“HTTP服务器”后,就可以在浏览器访问 http://localhost 或输入本机IP进行访问了。在HTTP中,它的搜索功能一样强大。因此,你可以把它加入Firefox等浏览器的自定义搜索中,更加方便的进行搜索。(可以在Everything Option的Http Tab上进行相关设置)

FTP功能类似,但不具备搜索功能。

相比而言,因为浏览器更为常用,并且支持搜索,默认的UTF-8编码识别率更高,所以推荐HTTP方式分享。无论是HTTP还是FTP,其端口、用户名、密码都是可以设定的。这样,你就可以在局域网内更放心的分享文件了。

除了与朋友分享之外,在文件服务器上运行Everything,然后用户就可以通过浏览器快速搜索了。这是一个很好的应用。

四、Everything与其他程序集成

Everything如此好用,所以很多网友探索了它与其他程序的集成方法,汇总如下。个人观点是,Everything与TC的集成具有很高实用性;另外几种集成可供参考和启发。

4.1 Everything与Total Commander集成

a. 双向集成的目标

  所谓Everything与Total Commander集成,到底指什么?善用佳软的实际使用中,实现了如下双向集成:
  ① 从TC到Everything:在Total Commander中,按下ctrl+alt+f则打开Everything进行搜索;
  ② 从Everything到TC:在Everything搜索结果上,双击目录,或在文件上右键菜单“打开路径”,则Total Commander进入此目录。需要说明的是,目前TC只能打开该目录,但不能自动选中搜索结果。

b. 从TC到Everything的集成方法

  依靠自己:“自己动手,丰衣足食”,虽然效率不一定高,但这是最可靠的方法,即利用Total Commander的标准功能调用Everything。其实现手段有多种,原理和视频操作可参见《TC学堂》中《第7讲: TC快捷无极限》中相关内容,比如“4. 外部程序化为TC扩展命令”。
  依靠TC作者:最理想的方案当然是,TC作者针对Everything提供专门的、更优的集成方案。但是,坚持自己原则的Ghisler认为:尽管Everything效率极高,但由于NTFS格式限制,不具有通用性,所以,不会官方集成。
  依靠雷锋叔叔:除了TC作者,你还会期望网络上某个热心人开发一款相应插件。果然,俄罗斯网友为TC开发了FSE插件。优点:可以把搜索结果输出到TC的窗口里面处理。缺点:目前仅支持ASCII字符,即不支持中文。(作者表示,将在 Locate 支持Unicode之后,修复此bug。)所以,最终结论是:中文用户暂不推荐。

c. 从Everything到TC的集成方法

  以下内容由网友dracodoc于2008-11-18 1:17补充。Everything集成Total Commander

这次更新不仅仅是语言包,更重要的是可以支持其他文件管理器,已经可以和total commander集成了。Everything FAQ有介绍。

我的修改:
explore_folder_command=$exec(“%SystemRoot%explorer.exe” /n,/e,”%1″)
explore_folder_path_command=$exec(“%SystemRoot%explorer.exe” /n,/e,/select,”%1″)
open_folder_path_command=$exec(“d:appwincmdTOTALCMD.EXE” “$parent(%1)”)
open_file_command=$exec(“%1″)
open_folder_command=$exec(“d:appwincmdTOTALCMD.EXE” “%1″)

explore部分不用变,保留第二种选择。需要在tc里设定只打开一个tc实例,我试过用tc命令行的/o参数来不打开第二个实例,但是everything不认。
现在双击找到的文件会打开,双击目录会激活tc跳到该目录(如果你想设定在左边,右边或者新建一个tab可以尝试加上tc的命令行参数,不一定能用),右键选择文件,open path会用tc打开文件所在目录。
再在tc里或者其他全局hotkey设定程序里设定everything的激活热键就可以了(我不喜欢一直开着,随用随启动并不慢)

需注意的是,上述功能只适用于v1.2.0.323b及以后版本,请检查你的程序,或下载最新beta版。低版本Everything无法识别上述ini内容,会强行删除。“在tc里设定只打开一个tc实例”的做法有2种。一是图形化操作(推荐):配置 → 操作方式 → 主程序 → 只允许一个TC运行。二是直接在wincmd.ini中的[Configuration]段增加一句 onlyonce=1,并重启TC。

4.2 Everything代替Windows默认搜索

Windows自带的搜索程序功能不错,但速度偏慢。如果你希望把“开始”菜单中的搜索替换为Everything(或其他搜索软件),可以用修改工具RerouteXPSearch进行设置。软件小巧,使用容易,LifeHacker电脑玩物小众软件先后都有介绍,此处从略。

4.3 Everything与Firefox集成

因为Everything自带了HTTP服务器功能——当然也拥有同样出色的搜索功能——因此,可以通过浏览器进行本地或网络计算机的搜索。当然,有一个前提:搜索目标机上Everything一直打开并且启用HTTP服务器。如果认为输入网址不方便,也可以集成的到浏览器的搜索框中。比如,Firefox可通过扩展Add to Search Bar加入到工具栏的搜索框引擎(可设定用户名/密码以保护安全),详见电脑玩物文章。

五、其他补充

5.1 everything的速度

Everything搜索工具的最大优点是速度。其速度不是快,是极快;用户不是满意,而是震惊。

第一个快速体现在索引速度。官网称,1分钟可索引100万个文件。笔者的NTFS文件系统共40G/近4万个文件,第一次启动时,根本没有感觉到建立索引需要时间。这种快速,是因为Everything的索引无需逐一扫描硬盘文件,而是直接读取NTFS文件系统的USN日志。这当然是既省力,又合理的做法。

第二个快速体现在搜索速度。在搜索框中键入字符后,搜索结果——或许称为过滤结果更准确——实时呈现。

总起来看,多篇测评和试用者认为,其速度超过了以前备受好评的Locate32。是否真有这么快?请各位读者反馈试用结果。目前收到的反馈都证明了这一点,对有些网友而言,速度已经快到令人震惊,甚至是愤怒了:凭什么可以这么快!

5.2 Everything资源占用

总起来讲,占用资源很少。
- 从安装(实际解压即可)来看,真正需要的只有一个主文件exe,约0.5MB。
- 索引数据库极小。笔者60G硬盘,索引文件0.7MB。
- 占用内存少,笔者使用为7MB。

5.3 Everything数据库更新

- 没有所谓更新频率的设定,因为更新是自动的。
- 每次重启Everything,都会自动更新;
- 每次设置Everything(比如设定排除列表)之后,都会自动更新;
- Everything运行时,会实时更新索引数据库。

5.4 Everything与windows管理员权限问题

问题1:非管理员用户,如何使用Everything?
  Everything的运行需要管理员权限[1][2]。但有时出于安全考虑,不应该(或不能)以管理员身份登录Windows。如何解决这一冲突呢?
思路1:权限法:
  “解铃还须系铃人”。如果认为此问题是windows的权限问题,则需要寻找通用的权限解决方案。比如:
  - Windows系统具备的run as。
  - 第3方软件,如 RunasSpc:方法
  - 第3方软件,如 CPAU:主页方法

思路2:服务法:
  “解铃还须系铃人”。如果认为此问题是Everything的问题,则请到官方论坛搜索答案、向最新beta版寻求答案。论坛中提到:未来或许可以通过服务来解决。而v1.2.1.451a的更新说明中显示:此功能已具备(added service parameters option)。
  下载v1.2.1.451a,关闭目前运行的Everything。稳妥起见,不妨也把其他db、xml、ini文件删除,即从零开始一个Everything程序。
  然后,运行 d:\soft\everything\Everything.exe -install_service ,就会增加Everything对应的服务了。说明:我在WinXP下,试图以非管理员身份运行 d:\soft\everything\Everything.exe -install_service ,似乎未成功安装服务——请大家帮助再次确认。
  (善用佳软于2010-03-25再次测试通过,WinXP SP2,Everything v1.2.1.451a)

问题2:
  以管理员身份运行Everything后,在搜索结果中双击exe运行其他程序,会继承管理员权限。如何避免?
答:
  暂无办法。

问题3:
  Win7下面不能自启动的问题。
答:
  不太了解,欢迎其他网友补充。

六、结论

如果你经常需要按照文件名进行快速搜索,并且磁盘用了NTFS文件系统,则Everything是首荐工具。如果你需要远程搜索其他计算机上的文件,那么Everything的服务器共享功能更为适合。总之,这款不到1MB的搜索利器,很值得收藏试用。