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!