ack是一个perl脚本,是grep的一个可选替换。

有以下优势:

  • 为程序员设计,使用方便,输入较少
    • 默认递归搜索
    • 缺省提供多种文件类型供选,文件类型对应的后缀名可修改
  • 使用perl的正则表达式,而grep只支持其一个子集
  • 搜索结果高亮输出

很多人以讹传讹,使人容易对ack的搜索速度产生误解。ack的官方宣传中说比grep快,其前提是ack可方便地针对部分后缀的文件进行搜索,而grep默认对所有文件搜索。ack的官方文档中明确指出,在对大量文件进行搜索时,grep的速度还是最快的。

~/.ackrc

使用此配置文件存储ack的常用选项。

-i --type-add php=.lib

如上所示,该文件中每一行应该是ack命令行参数中用空格分隔的一个部分。

例子

如果搜索的关键词是正则表达式,在Linux下必须将其用双引号包围起来。

如:

1
ack "gbldb\s*="

Windows下的安装

  • 安装strawberryperl
  • 保存ack.plC:\bin
  • 创建批处理文件C:\bin\ack.bat
    1
    2
    @echo off
    perl.exe c:/bin/ack.pl %*
  • C:\bin加入环境变量%PATH%

资源

  • ack.vim: Vim使用ack的辅助扩展

Posted via UltraBlog.vim.