vim实用技巧

jopen 11年前

今天把自己的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

vim实用技巧

第二个让我很兴奋的是new omni complete,vim默认支持多种主流语言的代码补全,css, javascript,php等等,尤为重要的是它还提供python代码的priview功能,请看下图。

vim实用技巧

很酷,对吧。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   inoremap   " 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
All as you wish!

最后我要分享的是功能非常强大command-t插件,它可以像IDE一样给你一个当前目录下所有文件的列表,然后根据你的输入查找你想编辑的文件,非常快捷方便。给个预览。

vim实用技巧

github上的链接:https://github.com/wincent/Command-T

Happy coding!