如何将外部命令的输出转储到Vim中的新缓冲区?

时间:2010-09-29 21:27:32

标签: vim

:enew让我创建一个新的缓冲区,:.!<command>让我将外部命令的输出转储到该缓冲区。我可以将两者组合成一个衬垫吗?

感谢。

3 个答案:

答案 0 :(得分:6)

'|'用于在vim中将命令链接在一起。所以

:enew | .! <command>

应该做你想做的事情

答案 1 :(得分:2)

:.!实际上通过外部命令管道当前行,可能会丢失该行。您可能希望使用:r !<command> - 请注意!之前的空格。我经常使用:0r !cmd,以便在缓冲区的开头插入输出。

答案 2 :(得分:0)

:vnew | read !<command>

执行命令并将输出放置在新的垂直拆分缓冲区中。使用#将当前缓冲区的路径传递给命令。例如

:vnew | read !python -m json.tool #

  

使用python的JSON模块格式化可工作的JSON文件。

或者,AsyncCommand插件可用于“异步运行任何程序并将结果加载到拆分”缓冲区。

其他阅读内容:

  • :h new
  • :h read