モチベーション
ネット上には様々なNeovimの設定やおすすめプラグインがありますが、それらが自分にとって便利かどうかは実際に設定したりインストールして試してみるほかありません。
実際に使ってみて合わなかったり不具合が起きたらアンインストールして・・・という風に試行錯誤を重ねながらそれぞれの設定ファイルを作り上げていくと思います。
これがNeovimの醍醐味であるとは感じますが、インストール↔︎アンインストールを繰り返したり、作ったNeovim環境の再現にはホストマシンにいろんなミドルウェア入れたりとすんなりいかなかったりするのを受けていっそ「実行環境ごと用意してしまえば?」と思い、コンテナ内にNeovim実行環境をまるっと閉じ込めることにしました
概要図
プロジェクト内容だけはコンテナ内に入れるわけにはいかないので、「コンテナにNeovim実行環境だけ用意」して、「プロジェクトファイルはホストからマウント」する方式を取ります。
手順
- ベースとなるイメージを決める
- 私は
Ubuntu 22.04
を使用しています - ミドルウェアのインストールで
apt get
系の記事が多いため、こちらを使っています
- 私は
- Neovimをインストールします
- Neovimコンテナ内でプラグインをインストールします
- プラグインのインストールや実行に必要なミドルウェアをインストールした場合はDockerfileに書き込んでimageに含めてしまいましょう
- 3を繰り返して自分好みのNeovimを作る
利点
- Docker内で完結するのでローカルPCを汚さない
- プラグインのインストールに失敗してもコンテナ作り直せば環境ごとリセットできる
- NeoVimのバージョンアップも試してダメなら簡単に巻き戻せる
- 他の人のNeoVimを簡単に試すことができる
欠点
- ホストマシンでコピーした内容をコンテナ内のNeovimでペーストできるが、その逆のNeovimコンテナ内でコピーした内容がホストマシンでペーストできない
- clipboardを認識していないようで現在解消方法を模索中
- x64アーキテクチャのubuntuを使用しているので、Apple Silicon系のMacだと遅いかもしれない
- ソースコードからNeovimをビルドすれば早くなる「かも」
- ミドルウェアを入れまくる必要があるので、コンテナイメージが3GBを超えてしまっている・・・
- そのため、ビルドが遅い
実際に作って使ってみて
- ホストPCでNeovim動かしていた時と比べても遅くなった感じはそんなにしない
- Neovimのバージョンアップとかプラグイン追加/削除が前よりもかなり気軽にできるようになった
- 他のPCでの再現がめちゃくちゃ簡単になった
私のNeovim環境