[英]How to expand/collapse a diff sections in Vimdiff?
我今天开始使用vimdiff了,并希望在基于Windows的差异编辑器上做一些我认为理所当然的事情(比如扩展/折叠差异部分,有完整的文件扩展/只有差异,上面有3个上下文行或者以下等)。 我目前只知道以下命令:
键盘快捷键:
d o - 从其他窗口更改到当前窗口。
d p - 将当前窗口中的更改放入另一个窗口。
] c - 跳转到下一个更改。
[ c - 跳转到之前的更改。
CTRL + W , w - 切换到另一个分割窗口( CTRL + W , CTRL + W执行相同的操作,以防稍后松开CTRL键)
有人能指出我正确的方向,所以我可以复制类似的功能吗?
例如,如果我可以扩展/折叠差异周围的线条会很好。
除了你提到的那些之外,我只是在分析以下内容时经常使用:
:diffupdate
:diffu
- >重新计算diff,在进行多次更改后很有用vim不再显示最小的更改。 请注意,只有在vimdiff中修改了文件后,它才有效。 否则,使用:
:e
如果文件已在vimdiff之外修改,则重新加载文件。 :set noscrollbind
- >暂时禁用两个缓冲区上的同时滚动,重新启用:set scrollbind
和scrolling。 您要求的大多数是折叠: vim用户手册关于折叠的章节 。 在差异之外,我有时会使用:
zo
- >打开折叠。 zc
- >关闭折叠。 但你可能会更好地服务于:
zr
- >降低折叠水平。 zm
- >请多一个折叠级别。 甚至:
zR
- >完全减少折叠,我说! zM
- >折叠最多! 您要求的另一件事,使用n行折叠,可以在选项的vim参考手册部分找到,通过diff部分 :
set diffopt=<TAB>
,然后更新或添加context:n
。 设置vimdiff忽略大小写
开始使用vim diff
gvim -d main.sql backup.sql &
我发现令人讨厌的是,一个文件的MySQL关键字是小写的,另一个是大写的,显示了几乎所有其他行的差异
:set diffopt+=icase
这会动态更新屏幕,您可以轻松地再次关闭它
实际上如果你做Ctrl+WW
,你不需要添加额外的Ctrl
。 做同样的事情。
如上所述,ctrl + w,w可用于从窗格导航到窗格。
现在,您可以单独选择一个特定的更改并将其粘贴到另一个窗格,如下所示。我正在给出一个例如,好像我想将我的代码片段从窗格1更改为窗格2,目前我的光标位于pane1
使用Shift-v突出显示一行,然后使用向上或向下键选择所需的代码段,并从下面的步骤3继续将更改粘贴到另一个窗格中。
使用可视模式,然后更改它
1单击“v”这将带您进入可视模式2使用向上或向下键选择所需的代码3单击,Esc'转义键4现在使用'yy'复制或'dd'切换更改5 do' ctrl + w,w'导航到pane2 6单击“p”将您的更改粘贴到您需要的位置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.