在Vim中区分两个选项卡

duk*_*ave 118 vim diff tabs buffer vimdiff

场景:我打开了Vim并粘贴了一些文字.我打开第二个标签,:tabe然后粘贴其他文字.

目标:我希望第三个选项卡的输出相当于将两个文本都写入文件并打开它们vimdiff.

我能找到的最接近的是"将当前缓冲区与文件区diff分开",但不是两个打开但未保存的缓冲区.

Jan*_*Jan 186

我建议在同一个标​​签中打开第二个文件而不是新标签.

这是我通常做的事情:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis
Run Code Online (Sandbox Code Playgroud)

:vnew命令垂直拆分当前视图,以便您可以在那里打开第二个文件.然后将:diffthis(或short:):difft命令应用于每个视图.

  • 你只是吹了我的脑海.在':diffthis`之后我的生活将永远不变.非常感谢.谢谢! (10认同)
  • 啊,我也不知道'vnew`,好小费! (4认同)
  • 这太棒了."编辑文件N"部分可以用缓冲区中的粘贴替换,这样就可以将两个文本块分开,而不会将每个文本粘贴到一个tmp文件中(可以让你做的事情,但缺少Mac上的可视化差异工具) .它开箱即用,适用于MacVim. (3认同)
  • "vnew"和"edit file2"可以通过"vsp file2"组合 (2认同)

joe*_*ice 38

我建议尝试:diffthis:diffsplit

  • `:vert diffsplit`比没有`:vert`更具传统的差异视图 (10认同)
  • 您可以:将diffopt + = vertical设置为make:vert为默认值. (7认同)
  • 另外,同时滚动两个窗口:`:set scrollbind`. (3认同)

A B*_*A B 25

如果在垂直拆分中打开了两个文件,请运行

:windo diffthis

  • 使用```:diffoff```来关闭diff模式 (7认同)
  • 但是,如何从两个选项卡更改为垂直拆分? (2认同)