1. 程式人生 > >Vim UltiSnips自動補全 (Python強依賴)

Vim UltiSnips自動補全 (Python強依賴)

想要Vim像Sublime一樣快速程式設計,就需要各種好的snippets快速生成一段預備好的程式碼。一般常用的外掛是UltiSnips作為生成程式碼的引擎,Vim-snippets外掛作為各種語言的常用語句包。

注意:此外掛極其依賴Python特定版本,一旦本地python版本有一丁點變動,整個vim的使用都會完全受阻!

安裝Snippets外掛

在已有Vundle外掛管理器的基礎上,直接在.vimrc檔案中加入這兩個外掛名:

image

然後退出vim再進入vim,輸入命令: :PluginInstall,等待安裝完成後,重新進入vim,就可以正常使用了。

建立snippets

相比於sublime, 在vim中建立snippets是稍微麻煩點。主要跟隨這幾點:

  • 找到外掛目錄,是位於~/.vim/bundle/下的ultisnipsvim-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>