在vim中自动编写循环?

时间:2011-01-17 11:35:40

标签: linux vim

我今天一直在为循环写作。所有这些都具有以下格式:

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

我知道有办法记录vim中的动作。如果X和Y可以改变,一旦我以某种方式提供X和Y,我可以在vim中做一些东西来写一个for循环吗?

4 个答案:

答案 0 :(得分:7)

您可以使用snipMate之类的插件来存储代码段,然后您可以在其中存储for代码段。

事实上,它已经有很多predefined snippets,其中很多都可能有用。

答案 1 :(得分:1)

这是Vim wiki on abbreviations的一个例子:

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

不完全是你想要的,但接近那个。

答案 2 :(得分:1)

我使用宏:

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

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

然后,您可以使用@f运行此宏。

编辑:刚刚看到你问题的第二部分(不确定你是否编辑过它?也许我读错了。)但是如果X和Y要改变,我会建议一个更有特色的解决方案,比如snipMate.vim

答案 3 :(得分:1)

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

我正在维护mu-template,这是[{3}}高级代码段的根源。