使用几天之后更新一下:command-t的速度确实非常不错,但文件搜索的匹配结果不如ctrlp好,速度和准确率有时是挺矛盾的,现在又用回ctrlp了。
之前的文章Vim插件之ctrlp中曾经提到Vim下的模糊搜索工具ctrlp
,ctrlp的优点是依赖少,其他插件对它的支持比较好,缺点一个是速度慢,这个可以通过让ctrlp调用ag
来提高搜索速度,但使用外部工具又会带来一些副作用,使得ctrlp的部分功能失效。但近几年来,同类插件中有一些新秀做得比较好,开发活跃,功能不断丰富。下面主要介绍一下command-t。
command-t
这款插件开发的主要目的就是为了提高搜索速度,底层运用了C语言,并结合并行搜索
和Watchman
等各种优化,实际使用时相应速度相当不错。command-t和ctrlp一样支持搜索MRU,Buffer和Tags,并且还支持在新标签页和分屏窗口中打开。不足之处在于安装配置复杂一些,首先需要Vim支持Ruby
,其次它和YouCompleteMe
一样安装完成以后还需要编译一下才能使用,安装完成使用<Leader>t
触发command-t时会有消息提示" Vim Command-T plugin error: could not load the C extension"
,这就是让你到插件所在目录编译,具体方法如下:
$ sudo aptitude install ruby-dev
$ cd ~/.vim/bundle/command-t
$ rake make
编译完成以后,就能使用了,下面是搜索提示符下的快捷键,可以发现和终端下的快捷键是相同的
按键 | 功能 |
---|---|
Ctrl-h | 向左移动一个字符 |
Ctrl-l | 向右移动一个字符 |
Ctrl-a | 移动到行首 |
Ctrl-e | 移动到行尾 |
Ctrl-u | 清除提示符上的内容 |
Tab | 切换到文件列表上 |
下面是在提示符或者文件列表下的快捷键
按键 | 功能 |
---|---|
Enter | 打开选中文件 |
Ctrl-C | 在新的水平分割窗口中打开选中文件 |
Ctrl-s | 同上 |
Ctrl-v | 在新的竖直分割窗口打开选中文件 |
Ctrl-t | 在新的标签页打开选中文件 |
Ctrl-f | 清空缓存 |
Ctrl-q | 在quickfix窗口中打开选中文件 |
Ctrl-c | 退出文件列表 |
最后贴一下我的配置,默认情况下使用<Leader>t
打开文件
"command-t
"<Leader>b浏览Buffer
nmap <Leader>b <Plug>(CommandTBuffer)
"<Leader>f显示MRU文件
nmap <Leader>f <Plug>(CommandTMRU)
"搜索结果最大匹配数
let g:CommandTMaxHeight = 25
"搜索结果不区分大小写
let g:CommandTIgnoreCase = 0
"搜索结果不按反向排序,即最匹配的位于最顶部
let g:CommandTMatchWindowReverse = 0
"开启wildignore
let g:CommandTWildIgnore=&wildignore
"搜索结果匹配大小写
"let g:CommandTSmartCase = 1