如果我在 Vim 中并想从命令行获取一些输出并将其添加到我当前的文件中,我可以运行以下命令:
:! echo "foo" >> %
Run Code Online (Sandbox Code Playgroud)
这会将“foo”附加到我当前的文件中,我将不得不重新加载。
有没有更优雅的方法来做到这一点 - 例如,让输出进入我可以粘贴的缓冲区?
gar*_*ohn 24
是的:
:r !echo "foo"
Run Code Online (Sandbox Code Playgroud)
看
:help :r!
Run Code Online (Sandbox Code Playgroud)
这将在当前行之后插入命令的输出。如果要将命令输出捕获到可以粘贴的寄存器中,可以执行以下操作:
:let @a = system('echo "foo"')
Run Code Online (Sandbox Code Playgroud)
现在命令的输出(包括尾随的换行符)在 register 中a
。看
:help let-@
:help system()
Run Code Online (Sandbox Code Playgroud)