サイトによっては vimperator を無効にしたい
vimperator はものすごーく便利ですが、無効にしたいサイトもあります。
- Gmail
- Google Reader
- Google Calender
- etc…
ってなんかGoogleばっかですが…他にも独自のショートカットが設定されてるサイトとかは
vimperator のマッピングが逆に邪魔になることもあると思います。
便利機能 ignorekeys
で、そんな時に使える便利機能 ignorekeys というものがあります。
コマンドモードで、
ignorekeys add mail\\.google\\.com
とすることで、指定したサイトは vimperator のキーマップを無効に出来ます。
で、さらに便利なことに、
ignorekeys add mail\\.google\\.com -except b,o,:
とかすると、基本無効にするけど、'b' と 'o' と ':' は有効のまま、と出来ます。
これが便利なのでサイトごとに設定しているのですが、困ったことがありました。
追加したキーマップを -except に指定しても反映されない…。
自分はタブの移動を下記のようにマッピングしています。
noremap h <C-p> noremap l <C-n>
こうすることで、'h' で前のタブ、'l' で次のタブにフォーカスを移動出来ます。
これが便利なので、Gmail でもこれは使いたいなぁと思い下記のように設定しました。
ignorekeys add mail\\.google\\.com -except h,l,b,o,:
しかし、これでは全くうんともすんとも動きませんでした。
一応コマンドラインには
except h,l,b,o,:と表示されていますが全く効かない。。
解決:マッピング元のキーも -except に指定する
むー…としばし色々試してみて、ようやく設定できました。
お気づきかもしれませんが、マッピング元のキーも指定してあげれば良かったんです。
ignorekeys add mail\\.google\\.com -except <C-p>,<C-n>,h,l,b,o,:
まぁ後になってみれば、そりゃそうだよねって感じなのですが、無駄に色々試しました。。
でも、これでだいぶ快適になった!
ちなみに
この ignorekeys は設定ファイルには保存されなくて、
.vimperator/info/default/ignored-keys
に保存されていました。
おしまい。
0 件のコメント:
コメントを投稿