LoginSignup
2
2

More than 5 years have passed since last update.

Vimperator で "IGNORE ALL KEYS" を回避

Posted at

Vimperator を使っていると,ときどき勝手に "IGNORE ALL KEYS" と表示され Vimperator のキー入力を受け付けなくなる時があります.これは不便なので,.vimperatorrc に設定を追加してこの現象を回避します.

問題の再現

Vimperator を使っていると,意図しないタイミングで自動的に ignore モード(と呼ぶのでしょうか?ステータスバーに "IGNORE ALL KEYS (Press <S-Esc> or <Insert> to exit)" と表示されるアレです)に切り替わってしまい,Vimperator のキー入力を受け付けなくなる時があります.

いろいろなサイトにアクセスして ignore モードに切り替わる条件を調べてみると,どうやらパーセントエンコーディングを含む URL のサイトにアクセスしたときに切り替わるようです.例えば,日本語を含むキーワードで Google 検索した場合や,日本語タイトルの Wikipedia の記事へアクセスした場合などに,自動的に ignore モードに切り替わります.

問題を回避する設定

.vimperatorrc に以下の autocmd を追加します.

.vimperatorrc
autocmd LocationChange .* js modes.passAllKeys = false

追加したら :source ~/.vimperatorrc で設定を読み込みます.

解説

全てのページについて,ページを開くときに ignore モードを解除するようなコマンドを自動的に実行できれば,この問題はとりあえず解決できます.先ほどの設定はそれを行うためのものです.

autocmd はイベントが発生したときに実行するコマンドを登録します.

autocmd {バインドするイベント} {コマンドを実行する URL のパターン} {実行するコマンド}

バインドするイベントに LocationChange を指定しているので,ページを遷移したときにコマンドが実行されます.URL には .* を指定しているので,すべての URL においてコマンドが実行されます.実行するコマンドの先頭に js を指定しているので,コマンドは Javascript として実行されます.実行するコマンドには modes.passAllKeys = false を指定しているので,キー入力を無視しない(ignore モードにしない)よう設定されます.

問題の起こる環境

勝手に ignore モードに入る問題の原因がバグなのか設定のせいなのかアドオンが干渉しているのかさっぱりわからないので,僕がこの問題に直面した環境を晒しておきます(ググっても解決策はおろか同じ問題に直面している人すらほとんど見かけなかったので,Vimperator を使っている全ての人に起こりうる問題ではないのかもしれません).

アプリ バージョン
Firefox 35.0
Vimperator 3.8.3
Stylish 2.0.1
セッションマネージャ 0.8.1.6
DOM Inspector 2.0.15
.vimperatorrc
highlight Hint font-family: monospace; font-size: 16px; font-weight: bold; text-transform: uppercase; color: white; background-color: red; border-color: ButtonShadow; border-width: 0px; border-style: solid; padding: 0px 1px 0px 1px;
set defsearch=gg
set complete=s
autocmd LocationChange .* js modes.passAllKeys = false
2
2
1

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
2
2