2015-09-27 89 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套回在插入模式下。