vim 通过 SSH 连接非常慢

vim 通过 SSH 连接非常慢

我与某些机器有非标准 SSH 连接;回声时间是......我不知道,0.2秒左右。

无论如何,当我启动 vim 时,比如说没有输入文件,我会遇到很长的延迟,大约 3 到 4 秒,当我通过低延迟 SSH 连接(即在同一网段内)进行连接时,我不'经验。这个延迟是vim 已向终端写入任何内容,因此在它可以期望我输入任何内容之前 - 所以我想知道是什么导致它尝试通过连接进行通信,以及它到底在通信什么。

我使用 strace -rr,寻找超过 0.1 秒的差异,并注意到其中一堆行:

     0.284973 recvfrom(3, "\1\0\v\0\0\0\340\1", 8, 0, NULL, NULL) = 8
     0.133300 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\1\0\0\0\0\0\1\205\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
     0.138255 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\2\0\0\0\0\0\377\377?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
     0.148123 recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\10\4\0M\1\0\0\37\0\0\0\0\0\0\0001\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1364

(这一次又一次地重复。)

这些消息是怎么回事?而且 - 我怎样才能让 vim 跳过这些通信尝试并更快地启动?

答案1

罪魁祸首是X11转发。我为此连接启用了 X11 转发,并且我还注意到 X11 应用程序非常慢且无响应,以至于我没有使用任何应用程序;但转发已重命名为启用。

当我禁用它时,或者即使我通过执行使其不引人注目:

unset DISPLAY

vim 启动变得非常快!

我相信 vim 出于某种原因试图弄清楚它是否需要在 X 窗口中运行; file-descriptor-3 通信是它尝试在它打开的套接字上与 X 服务器进行通信。

我问过后续问题关于阻止 vim 尝试这样做。

感谢@MarcusMuller 为我指明了正确的方向。

相关内容