Humanity

Edit the world by your favorite way

.vimrcを分割するinit-loader.vim書いた

tyru/init-loader.vim · GitHub

init-loader.elのVim版です。
書いといてなんですが、Vimでは.vimrcを分割するメリットはほとんどありません。

なぜか

.vim/syntax, .vim/ftplugin, .vim/ftdetectなど
いくつかの機能についてはすでにVim自体の機能としてディレクトリがわかれています。
なのでユーザはそこへ設定を書けばいいです。

また残念な理由としては

ということです。
たとえばinit-loader.vimを使って、
以下のような構成にするとエラーになります。

これはVimの仕様かバグか怪しいところですが、「s:build_quickrun_config_cpp0x()」がLazyを定義したスコープにあると勘違いされます。*1
:Lazyは「20-ex-commands.vim」というファイルで定義しました。

補足: Lazyの定義

また:Lazyの定義は簡単に言うと

:Lazy <args>
:MyAutocmd VimEnter * <args>

であり、MyAutocmdの定義は

:MyAutocmd <args>
:autocmd vimrc <args>

つまり「:Lazy 」は「:autocmd vimrc VimEnter * 」と一緒です。

ぐぬぬ

これHacksのネタにしようと思ってたのに...時間損した!!

*1:16_build_quickrun_config_cpp0x()という関数として解決されているが、スクリプト番号16は:Lazyを定義したファイル