LoginSignup
0
3

More than 3 years have passed since last update.

【Vim】コンマ1秒でも起動を速くする為のタイマー機能

Last updated at Posted at 2019-06-24

前置き

私の重装系vimは、プラグインは40個、vimrcは300行超えのカスタマイズを施してます。
当然、素のvimと比べると明らかに起動が遅い。
プラグインはマネージャに搭載された遅延ロードを使うことで起動の短縮を図ってます。
用意されてる分では足りなかったので、自分で色々試して更に遅延ロードをかけてます。
(参照:https://qiita.com/M4s0n/items/d251a90e4a71d67444dd)

第3世代のエディタが勢力を伸ばす昨今。
盲目にvimを愛する私は、さらなる高みを目指してvimの起動時間を短縮するべく
タイマー機能を活用し、起動を爆速にしました。

環境

vim8

下調べ

先ず、起動時のボトルネックを探りました。

Plug 'mattn/benchvimrc-vim'

上記プラグインを使用すると幾つかボトルネックを発見しました。

python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup

set undodir=~/.vim/undo
set undofile

大きく分けて2つ

  • vimのステータスラインに使用しているPowerline
  • ファイルを閉じても、以前のundoが使えるようにする設定

遅延ろぉぉぉぉおおど

みんな大好き遅延ロード。
vim8から搭載されたタイマー機能を使って、vim起動後にボトルネックだった設定を非同期で読み込ませる。

function! s:lazy_load(timer)
    python3 from powerline.vim import setup as powerline_setup
    python3 powerline_setup()
    python3 del powerline_setup
    echo 'Powerline Loaded'

    set undodir=~/.vim/undo
    set undofile
endfunction

" vim起動後、100ミリ秒後にcallされる
call timer_start(100, function("s:lazy_load"))

関数に遅延ロードしたいものを突っ込むだけの荒業。
後は、時間を設定してタイマーをコールするだけであら不思議。
起動が爆速になりました。

まとめ

全部が全部遅延ロード出来るわけではないですが、
遅延して問題ないものはタイマー機能を使ってロードすると、
ちょっぴり幸せになれます。

参考

  • vimrcのベンチマークを計るプラグイン

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3