2015-09-27 84 views
0

我在Vim中有以下縮寫。Vim中的縮寫以下命令

iabbr forr for(int i=0; i<len; i++) 

它工作正常,但我希望光標移動到iabbr後左邊。

我已經試過到目前爲止以下:

iabbr forr for(int i=0; i<len; i++) :10h 

10h - move the cursor to left 10 characters from current position 

但這並沒有工作,只打印所有文本,包括:10H

問:

我怎麼執行後命令縮寫? 我經歷了:help iabbr並沒有找到任何信息如何執行命令。

回答

2

我不確定這其實是真的可能。

一個漂亮的蹩腳的解決方法是:

iabbr forr for(int i=0; i<len; i++) <Esc>hhhhhhhhhh 

但是,這是可怕的。

相反,你可以在插件有興趣像 Vim-snippetsUltisnipsneosnippets:他們允許進入 preformated的代碼段,部分器件隨時可以改變。我認爲這是你需要的 。

2

您可以使用表情映射/縮寫本:

:iabbr <expr> forr 'for(int i=0; i<len; i++) '."\<esc>".repeat('h',10) 

閱讀幫助的:H地圖表達有關此細節。

或者,你可以設置一個標記,並跳轉到它:

:iabbr forr for(int i=0; i<<C-O>malen; i++) <C-O>`a 
+0

這個不錯 – elliptic00

0

我想你在找什麼是根本

iabbr forr for(int i=0; i<len; i++)<ESC>10hi 

<ESC>套在正常模式下,最後i套回在插入模式下。