tmuxセッションの中でのvimの起動がなんか遅い
背景
自分はプログラムを書く時のエディタはVim派です。
なおかつ、ターミナルの操作はtmuxを使っています。
tmuxというのは、複数のターミナルウィンドウをまとめて管理できるソフトウェアです。
例えばターミナルの画面を分割して、片方でコードを書き、片方でテストを実行したりという使い方ができます。
tmuxの便利な使い方については以前記事にしました。
症状
tmuxのセッション上でvimを起動すると、開くまでにワンテンポ(1秒ぐらい)時間がかかる。
VSCodeとか普通のエディタだったら1秒ぐらい普通?と思うが、vimで1秒かかるというのはストレスがすごい。
原因
vimの起動オプションで --startuptime <ファイル名>
を指定すると、起動時に何にどれくらい時間がかかっているかの情報をファイルに出力してくれるとのこと。
|
|
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のセッションを削除して、起動し直す
|
|
そしたら治った。
改善後
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開くときにワンテンポかかるのが普通になってたけど、治ってみると非常にスッキリした。