2013年5月26日日曜日

vimperator で ignorekeys を設定する


サイトによっては 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 件のコメント:

コメントを投稿