Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

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 に書かないと反映されない、ということがわかった。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>