JavaScriptを有効にしてください

tmuxセッションの中でのvimの起動がなんか遅い

 ·  ☕ 2 分で読めます

tmuxセッションの中でのvimの起動がなんか遅い

背景

自分はプログラムを書く時のエディタはVim派です。
なおかつ、ターミナルの操作はtmuxを使っています。

tmuxというのは、複数のターミナルウィンドウをまとめて管理できるソフトウェアです。
例えばターミナルの画面を分割して、片方でコードを書き、片方でテストを実行したりという使い方ができます。
tmuxの便利な使い方については以前記事にしました。

おすすめtmuxキーバインド - ひとりごと2.0

症状

tmuxのセッション上でvimを起動すると、開くまでにワンテンポ(1秒ぐらい)時間がかかる。
VSCodeとか普通のエディタだったら1秒ぐらい普通?と思うが、vimで1秒かかるというのはストレスがすごい。

原因

vimの起動オプションで --startuptime <ファイル名> を指定すると、起動時に何にどれくらい時間がかかっているかの情報をファイルに出力してくれるとのこと。

1
$ vim --startuptime startuptime.txt
times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.008  000.008: --- VIM STARTING ---
000.120  000.112: Allocated generic buffers
000.164  000.044: locale set
000.182  000.018: GUI prepared
000.189  000.007: clipboard setup
000.194  000.005: window checked
000.625  000.431: inits 1
000.646  000.021: parsing arguments
000.647  000.001: expanding arguments
000.666  000.019: shell init
1001.001  1000.335: xsmp init
1001.468  000.467: Termcap init
1001.575  000.107: inits 2
1001.896  000.321: init highlight
1002.614  000.521  000.521: sourcing /usr/share/vim/vim80/debian.vim
1004.822  001.858  001.858: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
~ 省略 ~
1040.814  000.708  000.708: sourcing /home/atori/.vim/bundle/vim-lsp/autoload/lsp.vim
1041.878  000.447  000.447: sourcing /home/atori/.vim/bundle/vim-lsp/autoload/lsp/utils.vim
1045.093  003.887: VimEnter autocommands
1045.095  000.002: before starting main loop
1045.291  000.050  000.050: sourcing /home/atori/.vim/bundle/vim-lsp/autoload/lsp/ui/vim/diagnostics/echo.vim
1069.558  024.413: first screen update
1069.563  000.005: --- VIM STARTED ---

出力してみた結果、vimの起動にかかった時間全体は1.06秒くらいなのだが、そのうちxsmp-initという処理で約1秒時間がかかっていることがわかった。

対処

この症状でググってみると、以下の情報が引っかかった。

linux - Why is accessing the X server locally from vim so slow? - Super User

xorgのほにゃほにゃでタイムアウトしてるとかなんとか
対策はtmuxのセッションを削除して、起動し直す

1
$ tmux kill-server

そしたら治った。

改善後

times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.006  000.006: --- VIM STARTING ---
~ 省略 ~
003.665  001.299: xsmp init
~ 省略 ~
146.647  000.004: --- VIM STARTED ---

長いことこの事象放置してたので、vim開くときにワンテンポかかるのが普通になってたけど、治ってみると非常にスッキリした。

共有