我今天开始使用 vimdiff,并且想做一些我认为在基于 Windows 的差异编辑器上理所当然的事情(例如展开/折叠差异部分,具有完整的文件扩展/仅具有三个上下文的差异线上方或下方等)。我目前只知道以下命令:
键盘快捷键:
do - 从其他窗口获取更改到当前窗口。
dp - 将当前窗口的更改放入另一个窗口。
]c - 跳转到下一个更改。
[c - 跳转到上一个更改。
Ctrl+W, w - 切换到另一个分割窗口(Ctrl + < kbd>W, Ctrl + W 做同样的事情,以防你稍后松开 Ctrl 键)
谁能指出我正确的方向,以便我可以复制类似的功能?
例如,如果我可以在差异周围展开/折叠线,那就太好了。
最佳答案
除了你提到的之外,我只在比较时经常使用以下内容:
-
:diffupdate
:diffu
-> 重新计算差异。当进行几次更改后,Vim 不再显示最小更改时,它很有用。请注意,它仅在文件已在 vimdiff 中修改时才有效。否则,请使用: -
:e
如果文件在 vimdiff 之外被修改,则重新加载文件。 -
:set noscrollbind
-> 暂时禁用两个缓冲区的同时滚动,由:set scrollbind
重新启用和滚动。
您要求的大部分内容是折叠:the Vim user manual's chapter on folding .在差异之外,我有时会使用:
-
zo
-> 打开折叠。 -
zc
-> 关闭折叠。
但你可能会得到更好的服务:
-
zr
-> 降低折叠级别。 -
zm
-> 请再折叠一层。
甚至:
-
zR
-> 完全减少折叠,我说过! -
zM
-> 折叠大多数!。
您要求的另一件事,使用 n 行折叠,可以在 Vim reference manual section on options 找到,通过 section on diff :
-
set diffopt=<TAB>
,然后更新或添加context:n
.
您还应该看看 user manual section on diff .
关于linux - 如何在 Vimdiff 中展开/折叠差异部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5288875/