web-dev-qa-db-ja.com

Vimperatorを搭載したFirefox:検索バーを切り替える方法は?

私はFirefoxを Vimperator Vimエミュレータプラグインで使用していますが、検索に/キーを使用する代わりに、Ctrl-Fによって呼び出される通常の組み込みの検索バーを使用することを好みます。

問題は、Vimperatorが有効になっている場合、検索が完了した後に検索バー内からEscを押すと、VimperatorがEscマッピングをインターセプトするため、検索バーが消えないことです(Vimperatorが無効になっている場合と同様)。

だから私の質問は、Escキーを押したときに、検索バーを通常どおりに非表示にするにはどうすればよいですか?

6
dorserg

次のマッピングを~/.vimperatorrcVimperator構成ファイルに追加します。

inoremap <Esc> <S-Esc><Esc><S-Esc>

また、Firefoxを再起動して変更を取得してください。

裏で、それは以下を行います:Vimperatorキーインターセプトを無効にし、EscキーをFirefoxに伝播し(検索バーを閉じます)、Vimperatorキーインターセプトをこの順序で有効にします。このマッピングは検索バーのみに固有のものではなく、すべてのinsert modeフォーム(入力を入力できる任意のテキスト領域)に適用されますが、とにかくそれが必要になる可能性があります。

3
dorserg

Vimperatorを有効にして、_i+CTRL+f_と入力すると、検索バーが表示されます。また、閉じるのも簡単です。

このコマンドを試してください:

:js document.getElementById("FindToolbar").close();

またはマップを作成します:(以下の行を '〜/ .vimperatorrc'に追加します)

noremap <c-s-f> :js document.getElementById("FindToolbar").close();<cr>

inoremap <c-s-f> <esc>:js document.getElementById("FindToolbar").close();<cr>

したがって、_CTRF+SHIFT+f_と入力すると、魅力のように機能します。

追記:

コマンドモードの_CTRL+f_は、検索バーを表示します。 _CTRL-b_はブックマークサイドバーを表示します。それが私がこの問題に遭遇する理由です。したがって、他のいくつかのマッピングが役立つ場合があります。

_cnoremap <c-f> <right>_

_cnoremap <c-b> <left>_

更新
Gecko 1.9(Firefox 25)以降、代わりに次のコマンドを使用してください。
:js getBrowser().getFindBar().close()

5
Bohr