是否可以运行外部命令并将其输出存储在寄存器中?
:redir
适用于ex命令,不适用于外部命令(afaik):r !
运行外部命令,但直接将输出插入到
当前缓冲区答案 0 :(得分:37)
感谢vim-use邮件列表上的用户找到答案:
:let @a = system("ls -l")
使用光标下的文件作为参数运行命令:
:let @a = system("ls -l " . shellescape(expand('<cfile>')))
答案 1 :(得分:0)
:redir
似乎确实有用,尽管有些笨拙。如果您希望将文件中的数据通过管道传递到外部命令,则可能会更容易。
:redir @a
:w ! ls -1
:redir END
"ap
编辑:有趣的是,我刚刚注意到它似乎在neovim v0.4.3中对我有用,但在vim 8.2.100(MacOS 10.15.2,都通过自制程序安装)中不是。 / p>