Vim搜索与自动补全功能全解析
1. 替代grep插件
在Vim中,将多文件搜索外包给外部程序十分便捷。我们只需更改grepprg和grepformat设置,然后执行:grep命令,搜索结果就会出现在快速修复列表中。无论实际调用的是哪个程序,其接口几乎相同。
不过,不同程序存在重要差异。grep使用POSIX正则表达式,而ack使用Perl正则表达式。若:grep命令在后台调用ack,就会增加一层误导。我们可以创建自定义命令,如:Ack,使其名副其实。
Ack.vim插件就采用了这种策略,fugitive.vim也是如此,它添加了自定义的:Ggrep命令来执行git - grep。我们可以安装多个这样的插件,由于每个插件都创建自定义命令而非覆盖:grep命令,它们可以无冲突地共存。我们不必局限于一种类似grep的程序,可以根据当前任务选择最合适的工具。
以下是一个使用ack搜索的示例:
$ ack --nogroup --column Waldo * ➾ department - store.txt:1:1:Waldo is beside the boot counter. ❮ goldrush.txt:6:1:Waldo is studying his clipboard. goldrush.txt:9:41:The penny farthing is 10 paces ahead of W