如何在交互式环境下隐藏当前行后的n行?

3

我在一个文本文件中有两个大表格,一个在另一个下方。 我想手动逐行进行比较。

每个表格都非常大,需要经常滚动屏幕。 在Vim中,我可以交互式地隐藏当前行下面的N行,以便在单个屏幕上同时看到我需要比较的两行,并且当我将光标移动到下一行时,下一个N行应该被折叠起来。

简而言之,我希望能够拖动折叠线向上或向下。


4
将文件在两个分割窗口中打开,垂直或水平方向均可。 - phd
1
这不是你想要的解决方案,但是请查看:help jumplist,它可能会帮助你滚动。我个人喜欢在函数之间加上一些空白行,这样可以使用'{'和'}'快速跳转段落(函数)。 - Hubert
1
让我看看是否理解了问题。假设文件有1000行,您想比较相隔200行的部分——例如,将第400行与第600行进行比较,将第401行与第601行进行比较等等。因此,您想折叠401-599行,然后当您向下按“j”键时,折叠移动到402-600行。如果这就是您要找的,我不知道Vim原始版本中是否有它;我使用拆分窗口来处理这种情况,正如@phd所建议的那样。虽然听起来很有用,但也许有人已经在VimScript或插件包中编写了它。 - m_mlvx
这听起来像是一个 XY 问题。"什么是 XY 问题?" - the Tin Man
1
你试过 vimdiff 吗? - dlmeetei
1
@m_mlv 是的,我想做完全相同的事情。 - Rakesh
1个回答

4
隐藏行不是解决问题的正确方法。您需要滚动绑定(:help scroll-binding)。
:e file.txt
:set scb
:vsp file.txt
:201
:set scb

这个序列将允许你在两个窗口中滚动打开file.txt,并且这两个窗口之间相差200行。如果您想要水平拆分窗口,请将 :vsp 替换为 :sp。如果您想要调整偏移量,可以使用非活动窗口上的鼠标滚轮,或者关闭一个窗口的滚动绑定,调整光标位置,然后重新激活滚动绑定。

:set noscb
20j
:set scb

同意滚动绑定。打开两个视图到同一个文件中,然后随意滚动。 - the Tin Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接