有没有办法在vim中插入几行预先写好的东西?

时间:2011-04-21 19:39:21

标签: vim

我经常使用以下两个HTML代码段:

<a href="" title=""></a><br />
<br />

<a href="" title=""</a><br />
<hr class="grp">

有没有办法可以快速将一个或另一个插入我的文件中?

4 个答案:

答案 0 :(得分:4)

您可以将它们存储在文件中,然后

:r name_of_snippet_file

将它们“读取”到光标所在的当前文件中。

答案 1 :(得分:3)

您可以使用许多插件/脚本增强Vim。一个快速的谷歌打击给我snipMate(没有尝试过),这似乎做你要求的。当然,您也可以通过读取文件来插入片段,但是使用制表符完成会更方便。

如果您发现自己输入了大量的HTML,我强烈推荐zencoding plugin。 Zencoding扩展了html / xml标签,并提供了更多编写html的方法(例如将一些行转换为未排序的列表)。

答案 2 :(得分:0)

为什么不在.vimrc中添加缩写

我的.vimrc中有以下c ++文件:

iabbrev cout cout << "" << endl;<left><left><left><left><left><left><left><left><left><left>

它让我只需输入“cout”然后打印:

cout << "" << endl;

将光标放在引号...

在vim中键入“:help iabbrev”以获得有关其工作原理的合理教程......

答案 3 :(得分:0)

您可以映射按钮以将文本插入前一行:

:map <F1> o<a href="" title=""></a><br /><ENTER><br /><ESC>
      ^   ^                                 ^           ^

有趣的位用^标记并在下面解释

o开始插入光标下方的行,
相反,O将开始插入光标上方的行,
<ENTER>插入换行符,
<ESC>退出插入模式。

如果您愿意,可以使用:imap代替:map,这将使其在插入模式下有效。在这种情况下,您可能希望在开始时退出插入模式,然后在结束时不退出

:imap <F1> <ESC>o<a href="" title=""></a><br /><ENTER><br />