您的位置:首页 > 其它

vim实用技巧

2012-11-07 08:55 483 查看
今天把自己的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
inoremap <C-O> <C-X><C-O>

" 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一样给你一个当前目录下所有文件的列表,然后根据你的输入查找你想编辑的文件,非常快捷方便。给个预览。



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

Happy coding!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim 补全 command-t vimgrep