如何創建多行VIM縮寫。如何創建多行縮寫vim
比如我想創建像subflowclass
的縮寫,它擴展爲:
package foo;
sub new {
}
sub test {
}
sub abc {
}
1;
如何創建多行VIM縮寫。如何創建多行縮寫vim
比如我想創建像subflowclass
的縮寫,它擴展爲:
package foo;
sub new {
}
sub test {
}
sub abc {
}
1;
它們提供了您想要的功能。你創建一個名爲filetype.snippets
的文件(因此如果你想爲Perl創建片段,你可以使用perl.snippets
)。然後,你可以從那裏定義你的片斷:
例如,在java.snippets
我有下面的代碼片段:
snippet println
System.out.println(${0});
現在,每當我鍵入的println然後按Tab(我用snipmate,不知道ultisnips是同樣的按鍵綁定),它擴展爲
System.out.println(*Cursor here*);
的${0}
定義製表位,所以你可以跳轉到參數或諸如此類的東西。
此外,還有一大堆預定義的片段可供下載here(如果使用病原體,只需將snippets文件夾放入您的包文件夾中)。他們爲snipmate和ultisnips工作。
你一個例子片斷是:
snippet subflowclass
package foo;
sub ${1:new} {
}
sub ${2:test} {
}
sub ${3:abc} {
}
1;
的${n:name}
符號表示把一個製表位有(一個地方,用戶可以跳轉到按Tab鍵),並給它的name
默認值。
如果您不想處理插件,則可以按<Ctrl-v><Enter>
將字面換行符放入您的映射中。這些文件在寫入時不會顯示爲換行符(例如在vimrc中),但在使用縮寫時將被視爲常規換行符。
因此,例如縮寫
ab subflowclass package foo;^M^Msub new {^M^M}^M^Msub test {^M^M}^M^Msub abc {^M^M}^M^M1;
將擴大到您所需的文本。 (我在^M
寫到這裏,因爲這是它是如何通過Vim的顯示,但這些都應該通過鍵入<Ctrl-v><Enter>
代替)
編輯:正如Peter Rincker in the comments指出,其實這是沒有必要的(雖然這個想法仍然有用其他情況)。你可以插入<CR>
,當使用縮寫時,它也將被替換爲換行符。
哦。從來不知道這一點。非常感謝resueman。這將非常有幫助 – user135538 2014-08-28 19:32:10
縮寫採用與映射相同的鍵碼。例如。 'ab foo foo
謝謝。
扎克,你真棒。你讓我今天一整天都感覺很好。謝謝你:) – user135538 2014-08-28 19:29:01
沒問題,我很高興我能夠幫助你! – Zach 2014-08-28 20:26:44