vim实用技巧
今天把自己的vim配置文件重新整理了一番,去掉一些自己平常不用的配置,着重提升了vim自带的omni complete代码不全功能和vimgrep的查找功能配置。这里总结一下。
首先是vimgrep, 用法很简单,:vimgrep /pattern/gi **,表示再当前文件夹(包括子文件夹)下的所有文件中查找pattern模式。默认情况查找到的匹配结果会更新quickfix窗口,如果没有打开quickfix窗口,则需要用:cw命令打开。这一点让我感觉很不好,我需要搜索完成后可以直接看到搜索结果。于是我查阅了vim的帮助文档,利用autocmd命令结合QuickFixCmdPost事件成功做了我想要的效果。QuickFixCmdPost表示在一个quickfix命令执行之后,跳转到第一个匹配之前。quickfix命令就是grep, vimgrep, make之类的命令。将一下代码添加到.vimrc配置文件中即可。
autocmd QuickFixCmdPost * :cl
第二个让我很兴奋的是new omni complete,vim默认支持多种主流语言的代码补全,css, javascript,php等等,尤为重要的是它还提供python代码的priview功能,请看下图。
很酷,对吧。vim默认没有开启这一功能,需要稍加设置,而且默认情况下priview的窗口是在窗口的顶端,而不是窗口的下面,同样我做了一些小手脚,来满足我完美主义者的一点私欲。
" omni complete setting autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType c set omnifunc=ccomplete#Complete " use ctrl+o instead of ctrl+x ctrl+o for fast typing inoremapAll as you wish!" Preview window on the bottom function! PreviewDown() if !&previewwindow silent! wincmd P endif if &previewwindow silent! wincmd J silent! wincmd p endif endf au BufWinEnter * call PreviewDown() " autoclose preview window when leave insert mode autocmd InsertLeave * if pumvisible() == 0|pclose|endif
最后我要分享的是功能非常强大command-t插件,它可以像IDE一样给你一个当前目录下所有文件的列表,然后根据你的输入查找你想编辑的文件,非常快捷方便。给个预览。
github上的链接:https://github.com/wincent/Command-T,
Happy coding!