vim實用技巧

jopen 12年前發布 | 24K 次閱讀 Linux 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

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!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!