キーボード操作だけでGoogle Chromeのアドレスバーへ行ってしまったフォーカスをページへ戻したい

tr; dr : chrome://settings/searchEngines に行って「その他の検索エンジン」の「追加」を押し、 URLの部分に javascript:、 キーワードに適当な英字を設定する(全角版も登録しておけばIMEを気にせず操作できる)。そうすればアドレスバーにそのキーワードを打ってエンターすればフォーカスが戻ってくれる。

Google Chromeの操作をVi風にしていると、どうしても他の操作も極力キーボードのみで操作したくなる。

私が入れたchrome 拡張

入門vi 第6版

入門vi 第6版

アドレスバーにフォーカスがあるときにページの方に戻れない *1

上記はツールの導入で何とかなったが、割と最近まで表題の問題が残っていた。 アドレスバーにフォーカスがある状態というのは以下の様な状態のこと。

f:id:randyumi:20150124155752p:plain

command(winなら ctrl) + L でアドレスバーにフォーカスを移せるが、意図せず用もないのにアドレスバーへ行ってしまう事がある。 ページにフォーカスが戻らないと上で紹介したvichromeは使えなくなってしまう

何とかして元に戻さなくてはならないが、昔は以下の様な対応をしていた。

  • enterを入力する
    • enterを打ち込むとページが読み込まれ始めて読み込み終わるまで待たされてイライラする
  • tabを押す
    • アドレスバーの横の拡張機能とかブックマークバーに移動してなんかいtabを連打すればいいのかわからなくてイライラする
  • マウスでページのなにもないところをクリックする
    • マウス(or トラックパッド)まで手を伸ばす必要がありめんどくさくてイライラする
  • control + F(ページ内検索)を実行する
    • ヤフー知恵袋かどこかで紹介されていた方法だった気がする
    • どのページにもありそうな文字(aとか)を適当に入力するとページの方にフォーカスが戻っていく
    • ただし、ページに該当箇所がないと依然アドレスバーにフォーカスのまま
    • もちろんヒットした場所にスクロールされてしまうので長いページを見ていた時とかイライラする

しかし、以下superuserの回答を実践していらいだいぶ快適になった。

Google Chrome (Mac) set keyboard focus from address bar back to page - Super User

摘要すると、

  • chromeのアドレスバーにjavascript: alert("mofu");みたいに書くことで任意のjsを実行することができる
  • javascript:でjsを実行するとページ側にフォーカスが戻る
  • だからページにフォーカスを戻したかったらjavascript:とかいてenterすれば良い
  • でも面倒だからこれをもっと簡単にやろう
    • chromeには検索エンジンショートカットみたいな機能がある(g 検索ワードみたいにアドレスバーに入れるとグーグルを検索ワードで検索みたいな機能)
    • これにpを入力するとjavascript:が実行されるようにする
    • 具体的にはChrome設定設定詳細設定を表示検索エンジンの管理から追加できる

こんなかんじになる。

f:id:randyumi:20150124162548p:plain

*1:会社でこの事を発表したがヴィマーは少なく共感を得られなかったためここで改めて発表した。