vim的多个复制缓冲区配置文件?

时间:2014-08-06 22:37:29

标签: vim

我尝试通过为每个缓冲区分配常用命令来有效利用vim的复制缓冲区;但似乎从来没有足够的。例如,在编辑html doc时,我将</li><br>\n\t<li>绑定到"l复制缓冲区,但在编辑bash脚本时,请使用"l缓冲区来执行特定于bash的命令。因此,在会话之间,我不断地为另一个命令复制一个命令,并根据我正在编辑的文件类型将其重新保存在缓冲区中,不管我是否同时编辑其中一个,这通常足以考虑它经常发生。

有没有办法可以为不同的复制缓冲区创建配置文件并根据我正在编辑的文件类型加载它们?

2 个答案:

答案 0 :(得分:3)

文件~/.viminfo包含当前存储的复制缓冲区。我想你可以创建它的副本,用你所有的html快捷方式说~/.viminfo_html,用你的所有脚本快捷方式命名为~/.viminfo_bash,在打开vim之前你可以设置一个{{1} }}

看起来~/.viminfo在启动时被vim加载到内存中,因此如果您想同时编辑html和.sh文件,可以使用两个/.viminfo文件(我尝试了它并且它可以工作,即使你向一些先前分配的复制缓冲区添加新数据,在vim启动时加载的前一个~/.viminfo文件的其他缓冲区中的数据仍然可用,但我没有测试很长或足够长,以查看复制缓冲区数据是否在vim会话期间保持稳定)只需替换备用文件的当前~/.viminfo文件并在新的vim会话中打开文档单独的终端会议。

如果从一个会话到另一个会话所需的~/.viminfo文件完全不完整且不可预测,那么您可以启动一个小脚本来提示您在启动vim之前选择要重命名的.viminfo文件。

答案 1 :(得分:2)

它们被称为“寄存器”,而不是“复制缓冲区”。

您真的应该使用正确的代码段扩展插件,例如the original Snipmatethe forked Snipmatethe fashionable UltiSnipsthe venerable XPtemplate

我解释了两种不太“先进”的方法over there