从终端命令行将一行复制到vim寄存器

时间:2012-07-22 13:00:50

标签: vim

我正在尝试编写一个脚本,它将在vim中打开一个文件并将其中的特定行复制到vim的一个寄存器中。当脚本再次运行时,它将决定再次打开文件,然后将值粘贴到vim的寄存器中。实际上,脚本应该在每次运行时切换值。

例如,假设我想在运行脚本时将单词“foo”切换为“bar”,然后再次运行脚本再返回“foo”。我可以通过以下方式得到foo这个词:

vim '+/foo' myfilename

我知道当我进入vim时,我可以通过

将'foo'加载到寄存器'q'中
"qyy

但是在使用以下命令检查寄存器时,以下命令不起作用:reg

vim '+/foo' '+"qyy' myfilename

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:6)

您正尝试在命令行模式下执行正常模式命令(这就是+参数的含义)。执行所需操作的正确命令行是:

vim '+/foo' '+normal "qyy' myfilename

有关此类论点的详细解释,请参阅:help +cmd