在通过ssh连接的tmux中,vim滚动速度缓慢

6

最近我在服务器上尝试使用tmux替代byobu (screen)。当我开始用vim编辑代码时,发现当我按住j和k向上和向下滚动时非常卡顿。

我认为这可能是我的连接出了问题,但我尝试在没有tmux的情况下编辑同一个文件,发现反应更加灵敏,几乎没有延迟。

那么,有什么办法可以让tmux上的vim不卡顿吗?

2个回答

8
听起来你正在使用ssh上的tmux。如果是这样,你可能想尝试一下mosh。它是在ssh之上构建的,但比ssh有许多优点。其中之一是:

摆脱网络延迟。

SSH在显示您自己的输入之前等待服务器的回复。这可能会造成糟糕的用户界面。 Mosh不同:它对打字、删除和行编辑进行即时响应。它可以自适应地工作,甚至可以在像emacs和vim这样的全屏程序中工作。在连接不佳的情况下,未完成的预测将被下划线标记,以免误导您。

在我的经验中,它比通过ssh更好地工作。

Mosh 看起来非常有趣,唯一的问题是我在 Windows 上使用 PuTTY。 - nafis
@nafis 如果你很有冒险精神,尝试在Cygwin中使用mosh可能会很有趣:https://github.com/keithw/mosh/issues/164 :) - K Z

7
我经常在远程计算机上工作,我也遇到了相同的vim滚动问题。当你在tmux中使用vim,并且同时打开多个窗格时,tmux不能只重新绘制vim运行的屏幕部分,而是必须重新绘制一个更大的区域(可能是整个屏幕)。这会增加tmux通过你的连接发送的转义字符数量。
在我的情况下,启用ssh压缩可以大大减少这种缓慢。你可以使用以下命令尝试一下:
ssh -C user@host

或将压缩 yes放入您的~/.ssh/config中,使其永久生效。

这个技巧非常有效!对于那些无法使用mosh的人来说,是一个很好的解决方案。 - John

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