如何在Vim中同步查看和滚动垂直拆分缓冲区?

如何在Vim中同步查看和滚动垂直拆分缓冲区?,vim,Vim,我在Vim中有两个垂直分割的缓冲区,显示两个独立的文件,我希望同步显示和滚动。使用:在两个缓冲区的顶部设置scrollbind,我可以将滚动部分向下移动(因此当我在一个缓冲区中点击zt时,当前行会跳到两个缓冲区的顶部),但不幸的是,显示不同步 这意味着,如果文件中的行具有不同的长度,则两个缓冲区在视觉上不会对齐。我希望Vim显示额外的换行符,以确保长换行不会干扰两个缓冲区的垂直同步显示 谢谢 您可以使用 :set nowrap 阻止长行被缠绕,以便同步缓冲区。不完全是您要求的,但是关闭。除了在

我在Vim中有两个垂直分割的缓冲区,显示两个独立的文件,我希望同步显示和滚动。使用
:在两个缓冲区的顶部设置scrollbind
,我可以将滚动部分向下移动(因此当我在一个缓冲区中点击
zt
时,当前行会跳到两个缓冲区的顶部),但不幸的是,显示不同步

这意味着,如果文件中的行具有不同的长度,则两个缓冲区在视觉上不会对齐。我希望Vim显示额外的换行符,以确保长换行不会干扰两个缓冲区的垂直同步显示

谢谢

您可以使用

:set nowrap

阻止长行被缠绕,以便同步缓冲区。不完全是您要求的,但是关闭。

除了在两个缓冲区中设置scrollbind外,还需要发出命令
:syncbind
。这将同步滚动。我不知道如果你在包装行,而这两个文件的行长度不同,它是否会做得很好。但是如果你关闭wrap,我认为应该保持它们在相同的行号上。

如果你需要包装它们,我怀疑Vim是否真的适合区分具有很长文本行的垂直缓冲区,然而,我是一个真正的Vim爱好者

我可以给你的建议是:

  • 使用vim,在每行前面插入行号,并将文件的空格加倍(
    :g/^/put 
    )。如果你在翻译,行号不应该真的发生变化
  • 使用Kompare或Meld打开这两个文件,它们具有平滑绑定不等长度线的图形技巧。然后调整颜色方案,使其行为与不是扩散工具的情况类似

您要比较它们吗?对于这种情况,最好使用
diff
task@Andrew:不,我要编辑它们。双语文本。好问题,对齐缓冲区的酷用法!谢谢这些文件有很长的一行(同一本书有不同的语言),所以我想我得把它包装起来。谢谢。我通常在每个缓冲区上手动调用
scrollbind
,因此虽然
:syncbind
可以为我节省一些按键时间,但在存在不相等的长换行的情况下,我仍然存在对齐问题。syncbind不是scrollbind的替代方法,它会在两个窗口都打开scrollbind时改变行为。例如,如果我有两个垂直窗口打开同一个文件,但有一个窗口很窄,因此换行,那么我想让行始终“对齐”的唯一方法是(我认为)通过发出syncbind。当然,行仍然不能完美地对齐(除非像在diff视图中那样添加空行,否则它们永远不会对齐),但是当我向上或向下滚动一个窗口时,窗口顶部的两行总是完美地匹配。我不知道这对你来说是否足够,但最上面的线条总是匹配的。