在vim中自动编写循环?

我今天一直在写循环。 他们都有格式:

for(size_t szI = X; szI < Y; ++szI) { //Something } 

而且我知道有些方法可以在vim中logging动作。 如果X和Y可以改变,我可以在vim中做一些事情来写一个for循环,一旦我提供了X和Y?

您可以使用像snipMate这样的插件来存储片段,然后您可以将片段存储在片段中。

事实上,它已经有很多预定义的片段 ,其中很多可能是有用的。

这是来自Vim wiki缩写的一个例子:

 :abbreviate forl for (int i = 0; i < ; i++) {<esc>7hi 

不完全是你想要的,但接近于此。

我会使用一个宏:

 let @f = "ifor(size_t szI = X; szI < Y; ++szI)^M{^M}^[O^T" 

注意所有的^X字符都是通过Ctrl + Ctrl + X输入的。

然后你可以用@f运行这个宏。

编辑:刚才看到你的问题的第二部分(不知道如果你编辑它?也许我读错了),但如果X和Y将改变,我会建议一个更具特色的解决方案,如snipMate.vim。

最进化的方式确实是使用片段引擎。 snipMate已被唤起。

我正在维护作为lh-cpp的高级片段的根的mu-template 。