在 vim 缓冲区中获取命令的输出

在 vim 缓冲区中获取命令的输出

我想做的事

  1. 编辑一个文件
  2. 运行 '!svn diff %' (或者其他任何接受当前文件名
  3. 将输出放在新的缓冲区(或选项卡)上

奖励:不使用脚本,因为我经常在不符合自己喜好的主机上工作。

我的第一次尝试是::tabnew | r !svn diff %这显然不起作用,因为%在 tabnew 命令之后被解析时将为空。

答案1

这应该有效:

:tabnew | r !svn diff #

#:tabnew引用前一个缓冲区,即执行之前打开的缓冲区。

更好的是

:tabnew | set buftype=nowrite | r !svn diff #

因为当你关闭选项卡时 vim 不会抱怨,但是每次输入这些已经太多了。

相关内容