一部のシステムに非標準の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通信は、vimが開いているソケットでXサーバーと通信しようとすることです。
私は尋ねたフォローアップの質問vimがこれを試みないようにする方法について説明します。
正しい方向を教えてくれた@MarcusMullerに感謝します。