Windows版Neovimの設定ファイルの配置場所
Windows版Neovimを使い始めると、まず「設定ファイルをどこに置けばいいのか」で迷う人が多くいます。Linux/Macとはパスの慣習が違ううえ、環境変数で変更もできるため、標準の配置場所と変更方法を整理します。
目次(5項目)
標準の配置場所:%LOCALAPPDATA%\nvim
特に環境変数を変更していなければ、設定ファイルは次のパスに置きます。
%LOCALAPPDATA%\nvim\init.vim
Lua設定を使う場合は同じ場所にinit.luaを置けば構いません(init.luaが存在する場合はそちらが優先されます)。実際にNeovimがどのパスを読み込んでいるかは、起動後に次のコマンドで確認できます。
:echo $MYVIMRC
環境変数XDG_CONFIG_HOMEで変更する
環境変数XDG_CONFIG_HOMEを設定すると、設定ファイルの配置場所を任意の場所に変更できます。標準の場所と比べると次のようになります。
| 種類 | 標準の配置場所 | XDG_CONFIG_HOME設定時 |
|---|---|---|
| 設定ファイル | %LOCALAPPDATA%\nvim\init.vim | %XDG_CONFIG_HOME%\nvim\init.vim |
| データファイル | %LOCALAPPDATA%\nvim-data | %XDG_DATA_HOME%配下 |
Windowsの「システム環境変数の編集」からXDG_CONFIG_HOMEを追加し、例えばホームフォルダ直下の.configフォルダを指定します。設定後に:echo $MYVIMRCを実行すると、指定したパス配下のinit.vimが読み込まれていることを確認できます。
Linux/Macとの間でdotfilesリポジトリを共有したい場合、XDG_CONFIG_HOMEを揃えておくと同じ相対パス構成のまま設定を使い回せて便利です。
:echo $MYVIMRCで確認します。設定を統一したいならXDG_CONFIG_HOMEを揃えます。
データファイル(スワップ・アンドゥ履歴など)の場所
設定ファイルとは別に、スワップファイルやアンドゥ履歴などのデータはさきほどの表のとおり%LOCALAPPDATA%\nvim-data(またはXDG_DATA_HOME配下)に保存されます。設定ファイルと保存データの場所が分かれている点は、Vimの~/.vimとの違いとして覚えておくと便利です。
設定ファイルが読み込まれないときの確認手順
init.vimを編集したのに変更が反映されない、というときは次の順で確認すると原因を絞り込みやすくなります。
:echo $MYVIMRCで、実際に読み込まれているパスを確認します- そのパスに保存したつもりのファイルが本当に存在するか、エクスプローラーで確認します
init.luaとinit.vimを両方置いていないか確認します(両方あるとinit.luaが優先され、init.vimは無視されます)
特に3番目は見落としやすいところです。過去にvimscriptで書いたinit.vimを残したままinit.luaへ移行を始めると、init.vim側の変更がまったく反映されず混乱することがあります。
複数PCで同じdotfilesを使い回したくてXDG_CONFIG_HOMEを設定したところ、Linux側と全く同じ相対パスでinit.luaを共有できるようになりました。OSごとにパスを気にする必要がなくなったのは地味に大きなメリットです。init.luaへ移行した際にinit.vimを消し忘れて数分ハマったので、移行時は片方を確実に削除するようにしています。
まとめ
Windows版Neovimの設定ファイルは、標準では%LOCALAPPDATA%\nvimに置きます。XDG_CONFIG_HOMEを設定すれば任意の場所に変更でき、他OSとの環境統一もしやすくなります。どのファイルに何を書くかという役割分担はinit.vimとginit.vimの違いに、配置したのに反映されないときの調べ方は:scriptnamesにあります。