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

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

键盘快捷键:

  • do-将其他窗口中的更改获取到当前窗口中

  • dp-将当前窗口中的更改放到另一个窗口中

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

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

  • Ctrl+WW-切换到另一个拆分窗口(Ctrl+WCtrl+W,以防稍后松开Ctrl键)

有没有人能给我指出正确的方向,这样我就可以复制类似的功能

例如,如果我可以展开/折叠diff周围的线,那就太好了

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

  • :diffupdate:diffu->重新计算差异。在进行多次更改后,当Vim不再显示最小更改时,此功能非常有用。请注意,仅当文件在vimdiff内部被修改时,此功能才起作用。否则,请使用:
  • :e如果文件在vimdiff之外被修改,则重新加载这些文件
  • :set noscrollbind->暂时禁用两个缓冲区上的同时滚动,可通过重新启用:set scrollbind和滚动

您要求的大部分内容是折叠:Vim用户手册中关于折叠的章节。除Diff外,我有时使用:

  • zo->打开折叠
  • zc->闭合折叠

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

  • zr->降低折叠水平
  • zm->请再折叠一层

甚至:

  • zR->我说,完全减少折叠
  • zM->折叠最多

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

  • 设置diffopt=<TAB>,然后更新或添加上下文:n

您还应该看看用户手册中关于差异的部分

发表评论