2012-01-10 31 views
2

是否有插件使vim關閉基於indent和語法文件中的數據自動爲任何語言包裝代碼塊的語法結構?使vim自動關閉代碼塊的句法結構

比如我編輯LUA文件,當我寫

function myfunction() 

並按回車鍵,它會自動做出關閉「結束」

function myfunction() 
    <cursor position> 
end 

或者,也許任何人都可以顯示一個例子,如何寫你自己的插件用於特定語言的長代碼塊關鍵字(如lua,erlang或pascal)?

回答

3

Endwise似乎是你在找什麼。它已經支持lua,如果你對VimL感到滿意,它看起來很容易擴展。

+0

正是我在找的! – 2012-01-10 15:08:55

3

我會使用像UltiSnips(我的最愛)或Snipmate的片段插件。它們基本上將一些小文字或一段文字擴展爲更大的代碼段,並允許您僅編輯每個結構的唯一部分。 UltiSnips和Snippmate都包含許多語言的片段,並允許您創建自己的片段。

例如UltiSnips包含Lua的函數片段。我只需要鍵入了fun,然後按tab鍵,它被擴大到

function new_function(args) 

end 

new_fuctnion被選中,所以我可以編輯的功能名稱。然後當我按下Ctrl鍵 - Ĵ(在我的vimrc我重新綁定這標籤),其選擇是在這種情況下,讓我進入函數的參數args片斷的一個部分。最後的Ctrl - j將光標放在函數的主體中。