Vim UltiSnips自動補全 (Python強依賴)
阿新 • • 發佈:2019-01-06
想要Vim像Sublime一樣快速程式設計,就需要各種好的snippets快速生成一段預備好的程式碼。一般常用的外掛是
UltiSnips
作為生成程式碼的引擎,Vim-snippets
外掛作為各種語言的常用語句包。
注意:此外掛極其依賴Python特定版本,一旦本地python版本有一丁點變動,整個vim的使用都會完全受阻!
安裝Snippets外掛
在已有Vundle外掛管理器的基礎上,直接在.vimrc
檔案中加入這兩個外掛名:
然後退出vim再進入vim,輸入命令: :PluginInstall
,等待安裝完成後,重新進入vim,就可以正常使用了。
建立snippets
相比於sublime, 在vim中建立snippets是稍微麻煩點。主要跟隨這幾點:
- 找到外掛目錄,是位於
~/.vim/bundle/
下的ultisnips
和vim-snippets
。 - 不要在
vim-snippets
中預備好的各語言snippets上直接修改,因為每次更新都會被覆蓋。 - 必須在
ultisnips
資料夾下建立一個UltiSnips
資料夾,所有自定義程式碼都存在這裡。 - 自定義的程式碼片段必須給每個語言建立單獨檔案,儲存的檔名必須遵循
語言名.snippets
格式.如果是運用到所有檔案上的,就叫all.snippets
。 - 檔案儲存後即刻生效,無需重啟vim。
- 程式碼片段檔案裡面需要遵循如下格式:
snippet 關鍵詞 "描述" 生成模式
程式碼片段
endsnippet
其中,生成模式有很多種,一般為b
,即只有在一行的開頭輸入關鍵詞時,才會呼叫程式碼片段。其它還有b, A, w, i等模式,具體可以在vim 的:help ultisnip
中檢視文件。
舉個例子,我們要為html檔案做一些快捷程式碼,那麼:
首先建立、或修改一個snippets檔案:
$ vim ~/.vim/bundle/ultisnips/UltiSnips/html.snippets
然後新增如下格式的宣告:
snippet html "create html 5 structure" b <!DOCTYPE html> <html> <head><title></title></head> <body> </body> </html>