我想做的事
- 编辑一个文件
- 运行 '!svn diff %' (或者其他任何接受当前文件名)
- 将输出放在新的缓冲区(或选项卡)上
奖励:不使用脚本,因为我经常在不符合自己喜好的主机上工作。
我的第一次尝试是::tabnew | r !svn diff %
这显然不起作用,因为%在 tabnew 命令之后被解析时将为空。
答案1
这应该有效:
:tabnew | r !svn diff #
#
:tabnew
引用前一个缓冲区,即执行之前打开的缓冲区。
更好的是
:tabnew | set buftype=nowrite | r !svn diff #
因为当你关闭选项卡时 vim 不会抱怨,但是每次输入这些已经太多了。