← Vim研究所

gVimでプラグイン設定が反映されない原因(.vimrcと.gvimrcの違い)

2019-07-17 公開 ・ 更新: 2026-08-05

ターミナルのVimでは動いていた設定が、gVimでは効かない・プラグインが読み込まれない、というトラブルに遭遇することがあります。原因の多くは、プラグイン管理などの設定をうっかり.gvimrc(GUI専用の設定ファイル)に書いてしまっていることにあります。

目次(6項目)

.vimrcと.gvimrcの役割分担

ファイル役割
.vimrc(Windowsでは_vimrcVim全体の設定。GUI・ターミナル問わず読み込まれる
.gvimrc(Windowsでは_gvimrcGUI(gVim)起動時のみ読み込まれる、GUI固有の設定

読み込み順は.vimrcが先、.gvimrcが後になります。GUI固有の設定(フォント、ウインドウサイズ、メニューの表示/非表示など)を.gvimrcに書くのは正しい使い方ですが、プラグインマネージャーの設定やキーマッピングのような「ターミナルでもGUIでも効いてほしい設定」をここに書いてしまうと、ターミナルVimでは何も起こらない、という混乱を招きます。

要点:プラグイン管理・キーマッピング・一般的なオプション設定は.vimrcに書きます。.gvimrcにはフォントやウインドウサイズなど、GUI固有の設定だけを書きます。

症状から原因を切り分ける

次のような症状が出ている場合、設定ファイルの置き場所を疑うとよいでしょう。

症状疑う原因
gVimでは動くのにターミナルVimでプラグインが読み込まれないプラグイン管理の記述が.gvimrcに入っている
ターミナルVimでは動くのにgVimで一部の設定が反映されない.vimrc側の設定が.gvimrc側の記述で上書きされている

今どの設定ファイルが読み込まれているか確認する

:echo $MYVIMRC
:echo $MYGVIMRC

意図したパスと違う場所を指していないか、まずここで確認します。複数の設定ファイルを試行錯誤しているうちに、古いファイルが優先されていた、というのはよくある落とし穴です。

1ファイルにまとめてしまう選択肢もある

そもそも.vimrc.gvimrcを分ける必要性を感じないなら、GUI固有の設定もhas('gui_running')で分岐させて.vimrc1本にまとめてしまう方法もあります。

if has('gui_running')
  set guifont=Cascadia_Code:h12
  set lines=40 columns=120
endif

ファイルを分けて管理する煩わしさがなくなり、設定がどちらに書いてあるか探し回る必要もなくなります。Neovimのinit.vimginit.vimの関係、およびそちらでの現在の推奨アプローチ(UIEnterイベントの活用)については別記事で扱っています。

使ってみて

昔うっかりプラグイン管理の設定を.gvimrcに書いてしまい、SSH越しのターミナルVimでプラグインが一切読み込まれず長時間悩んだことがあります。原因が分かってからは、GUI固有の設定はhas('gui_running')の分岐で.vimrc側にまとめるようにし、ファイルをまたいで設定を探す手間自体をなくしました。

まとめ

プラグイン管理・キーマッピングは.vimrc、GUI固有の設定だけ.gvimrcという役割分担を守るか、いっそhas('gui_running')で1ファイルにまとめてしまうと、この種のトラブルを未然に防げます。

関連記事

← Vim研究所 トップへ戻る