小编典典

如何在 Vimdiff 中展开/折叠差异部分?

all

我今天开始使用 vimdiff,并且想做一些我在基于 Windows
的差异编辑器上认为理所当然的事情(例如展开/折叠差异部分,具有完整的文件扩展/仅具有以上三个上下文行的差异或下面等)。我目前只知道以下命令:

键盘快捷键:

  • d``o- 从其他窗口获取更改到当前窗口。

  • d``p- 将当前窗口的更改放入另一个窗口。

  • ]``c- 跳转到下一个更改。

  • [``c- 跳转到上一个更改。

  • Ctrl+ W, w- 切换到另一个拆分窗口(Ctrl+ W, Ctrl+做同样的事情,以防你稍后W放开键)Ctrl

有人可以指出我正确的方向,以便我可以复制类似的功能吗?

例如,如果我可以在差异周围展开/折叠线,那就太好了。


阅读 97

收藏
2022-04-15

共1个答案

小编典典

除了你提到的那些,我只在比较时经常使用以下内容:

  • :diffupdate :diffu-> 重新计算差异。当进行几次更改后,Vim 不再显示最小更改时,它很有用。请注意,它仅在文件已在 vimdiff 中修改时才有效。否则,使用:
  • :e如果文件已在 vimdiff 之外修改,则重新加载文件。
  • :set noscrollbind-> 暂时禁用两个缓冲区的同时滚动,重新启用:set scrollbind和滚动。

您要求的大部分内容都是折叠:Vim
用户手册的折叠章节
。在差异之外,我有时会使用:

  • zo-> 打开折叠。
  • zc-> 关闭折叠。

但您可能会得到更好的服务:

  • zr-> 降低折叠级别。
  • zm-> 请再增加一个折叠级别。

甚至:

  • zR-> 完全减少折叠,我说过!
  • zM-> 折叠大多数!。

您要求的另一件事,使用 n 行折叠,可以在Vim 参考手册的 options
部分
找到,通过diff
部分

  • set diffopt=<TAB>,然后更新或添加context:n.

您还应该查看diff 的用户手册部分

2022-04-15