Arch Linuxを入れて遊んでいるのだけど、vimのマウスの振る舞いが違った。マウス操作は本来のターミナル操作にしたかった。
調査
set mouse= を行うとよいが、これは各自が毎回設定するか各自で.vimrcに書かないといけない。共通の/etc/vimrcが使えるのでは?と思ったが、ここに書いても機能しなかった。読み込んではいたが。
他に定義しているものがあり、そこを消し込まないといけないのでは?と調べていたら、このあたりにあった。
grep -r " set mouse" -C3 /usr/share/vim/vim*/*.vim
こんな感じで設定されている
/usr/share/vim/vim91/defaults.vim-" terminals use ":", select text and press Esc.
/usr/share/vim/vim91/defaults.vim-if has('mouse')
/usr/share/vim/vim91/defaults.vim- if &term =~ 'xterm'
/usr/share/vim/vim91/defaults.vim: set mouse=a
/usr/share/vim/vim91/defaults.vim- else
/usr/share/vim/vim91/defaults.vim: set mouse=nvi
/usr/share/vim/vim91/defaults.vim- endif
/usr/share/vim/vim91/defaults.vim-endif
/usr/share/vim/vim91/defaults.vim-
/usr/share/vim/にある設定は /etc/vimrc の後に読まれているっぽいので、/etc/vimrcでは機能しなかったというわけらしい。
対応
仕組みはわかったので、単純にコメントアウトする。
sed -i.bak 's/\( *set mouse\)/"\1/' /usr/share/vim/vim*/defaults.vim
個人的に使うもんなんで、ユーザなんて自身とrootぐらいしかいないから1個1個定義したほうが良いじゃろという気持ちもありますけど。
追記: updateすると上書きされるので筋が悪そうだった。
strace vimでファイルを読む順序を見た感じ、この後はpluginの読み取りぐらいしかなさそうだった。
なので、プラグインとして入れてやれば良さそうだった。(プラグインというほど大げさなもんでもないけど)
sudo mkdir /usr/share/vim/vimfiles/plugin sudo tee /usr/share/vim/vimfiles/plugin/no-mouse.vim << "__EOF__" :set mouse= __EOF__