LoginSignup
16
21

More than 5 years have passed since last update.

.vimrc の変更が適用されないときは

Posted at

gvim を使っている場合、それは .vimrc ではなくて .gvimrc に書くべき設定かもしれない。ウィンドウや IM なんかの設定に関しては可能性が高い。

事のはじまり

MacVim の kaoriya さん版を利用しているんだけど input mode 移行時にいちいち IM が off にされてしまう。
これは由々しき事態だ、何とかしなければ。

:help コマンドと Google 検索で 'imdisableactivate' が悪さをしていることがわかったぞふはは。 .vimrc に set noimdisableactivate を書けば一件落着だ。

と、意気揚々と変更して :source ~/.vimrc してみたものの変わらない。
なぜだ。
おかしい。

鍵は Vim のスタートアップ時の挙動

.vimrc に書いているんだから適用されてないはずがない。適用後にどこかでさらに変更されているはずだ。

まず .vim/after の中身をチェック。該当なし。

となると system 設定ファイルが怪しいな。 :cd $VIM して :vim /imdisableactivate/ ** まで一連の流れ。しばらく待つ。と、結果が 1 件。 gvimrc ? えっ ?

確か system の設定ファイルが読まれてから local の設定ファイルが読まれるはずだったから…、あれ、おかしい。

ここで :help start まで打って補完させる。 startup て項目があった。 :help startup 。…順番違うじゃん。

GUI の設定ファイル読み込みはほぼ最後だった

ヘルプには設定ファイルが読み込まれる順番が書いてあった。上から順に実行されるってことは :help system-vimrc:help .vimrc:help init-gui の順だな。

どうも以下の順番になるらしい。

  1. system .vimrc
  2. local .vimrc
  3. system .gvimrc
  4. local .gvimrc

そうか、 local .vimrc で設定した option を system .gvimrc が変更していたわけか。
じゃあ設定を .gvimrc に移して、よし動いた。

文字入力なのに GUI 関係あるの ?

でも文字入力なのに GUI だとかは関係ないはずだよなー、と思って調べていたら :help imdisable に以下の一文を発見。

{only available when compiled with the |+xim|,
|+multi_byte_ime| or |global-ime| features, always
available in MacVim}

あー、 GUI 版は XIM 経由だから GUI 側の設定なのね。 CUI 版は terminal だとかからの入力で賄ってるわけか。

納得した。

というわけで

'guioptions' とか明らかに GUI まわりの設定や IM まわりの設定は .gvimrc に書かないと反映されない、ということがわかった。

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21