我最近一直在我的服务器上尝试使用 tmux 来替代 byobu(屏幕)。当我开始在 vim 上编辑一些代码时,我发现当我按住并上下滚动时它非常j
滞后k
。
我认为这可能是因为我的连接有问题,但我尝试在没有 tmux 的情况下在 vim 上编辑相同的文件,我发现它的响应速度更快,几乎没有延迟。
那么,我能做些什么来让 tmux 上的 vim 不滞后?
听起来您在 ssh 上使用 tmux。如果是这样,您可能想尝试一下mosh。它建立在 ssh 之上,但与 ssh 相比具有许多优势。其中之一是:
摆脱网络滞后。
SSH 在显示您自己的输入之前等待服务器的回复。这可能会导致糟糕的用户界面。Mosh 不同:它对输入、删除和行编辑提供即时响应。它可以自适应地执行此操作,甚至可以在 emacs 和 vim 等全屏程序中工作。在连接不良的情况下,突出的预测带有下划线,因此您不会被误导。
根据我的经验,它比通过 ssh 工作得更好。
我经常在远程机器上工作,我也有同样的 vim 滚动问题。当您在 tmux 中使用 vim 并且同时打开多个窗格时,tmux 不能只重绘运行 vim 的屏幕部分,而是必须重绘更大的部分(可能是整个屏幕)。这会增加 tmux 通过您的连接发送的转义字符的数量。
就我而言,启用 ssh 压缩大大减少了这种缓慢。您可以尝试一下:
ssh -C user@host
或放入Compression yes
您~/.ssh/config
的使其永久化。