Fusic Tech Blog

Fusion of Society, IT and Culture

Vim Bootstrapを使って雰囲気でVimを使う
2020/07/09

Vim Bootstrapを使って雰囲気でVimを使う

はじめに

.vimrcって奥が深いですよね
その高いカスタマイズ性から大人気のVimですが、そのカスタマイズ性の高さから
そもそもカスタマイズが難しいという側面もあるかと思います

今日はVimを使い始めたいけど、設定よくわかんない!って人の為に、
Vim Bootstrapを使って気軽にvimをセットアップする方法をご紹介しようと思います

Vim Bootstrap

Vim Bootstrapは一言で言えば、自分の利用する言語に合わせたいい感じの.vimrcを生成してくれるサイトです。

Vim Bootstrap

Vim Bootstrap Site

利用したい言語を選択して、Generate!を押下するとgenerate.vimが出力されます

nvimの人はnvimを選んでください

Generate Vim

これを$HOME/.vimrcにコピー、もしくはMYVIMRCのパスへコピーして利用しましょう
※既に自分自身の.vimrcを持ってる人は、注意して作業してください。バックアップしておきましょう

nvimの人は~/.config/nvim/init.vimに設定してください

プラグインインストール

おもむろにvimを起動するとgenerate.vimに設定されていたプラグインインストールが自動的に始まります。

PlugInstall-vim

これで雰囲気でなんとなくいい感じのvimを利用する事が出来ます。

カスタマイズ

ここからvimにプラグインを追加したり、設定を追加したりすると思います。

どうしてもgenerate.vimの内容を変更しなければならない事情があるなら仕方ないのですが、
書きたい言語が増えた時の為に、.vimrcに上書きしたいので
あんまり元ファイルを変更したくないなと僕自身は考えています。

generate.vimの中身に以下の様な記述があります

"" Include user's extra bundle
if filereadable(expand("~/.vimrc.local.bundles"))
  source ~/.vimrc.local.bundles
endif

~ 省略 ~

"" Include user's local vim config
if filereadable(expand("~/.vimrc.local"))
  source ~/.vimrc.local
endif

つまり~/.vimrc.local.bundlesに追加プラグインを記述して
~/.vimrc.localに追加設定を書けば良いわけです。

僕はここから更に設定の意味ベースでファイルを分けたいのでmattnさん
ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版を参考にさせてもらい
以下の様な記述だけして、設定ごとにファイルを分けています

~/.vimrc.local.bundles
"git commit 時にはプラグインは読み込まない
if $HOME != $USERPROFILE && $GIT_EXEC_PATH != ''
  finish
end

" 各種設定の読み込み
call map(sort(split(globpath(&runtimepath, 'loadplug/*.vim'))), {->[execute('exec "so" v:val')]})
~/.vimrc.local
"git commit 時にはプラグイン設定は読み込まない
if $HOME != $USERPROFILE && $GIT_EXEC_PATH != ''
  finish
end

" 各種設定の読み込み
call map(sort(split(globpath(&runtimepath, 'config/*.vim'))), {->[execute('exec "so" v:val')]})

~/.vim/loadplug/配下と~/.vim/config/配置に任意の名前の.vimファイルを配置して、読み込んでます。

これの記述により設定ファイル毎に設定を書き分けて、.vimrc設定を意識して書き分けてます
(意識して書き分けないと、なんの設定か、よくわからなくなってしまいます...

まとめ

カッコいいVim使いたいけど、.vimrc設定は奥が深すぎて手がつけれない…
そんな方は第一歩として、Vim Bootstrapを検討してみてはいかがでしょうか

Shiro Seike

Shiro Seike

Company:Fusic CO., LTD. Slides:slide.seike460.com blog:blog.seike460.com Program Language:PHP , Go Interest:Full Serverless Architecture