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

bhh*_*988 4 vim

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

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

vim '+/foo' myfilename
Run Code Online (Sandbox Code Playgroud)

而且我知道当我进入vim时,我可以将'foo'加载到寄存器'q'中

"qyy
Run Code Online (Sandbox Code Playgroud)

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

vim '+/foo' '+"qyy' myfilename
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

xai*_*zek 6

您正尝试在命令行模式下执行正常模式命令(这是+参数的意思).执行所需操作的正确命令行是:

vim '+/foo' '+normal "qyy' myfilename
Run Code Online (Sandbox Code Playgroud)

有关:help +cmd此类论点的详细说明,请参见参考资料.