Ich verwende Firefox mitVimperatorVim-Emulator-Plugin, aber anstatt dessen /
Schlüssel zum Suchen zu verwenden, verwende ich lieber die normale integrierte Suchleiste, die aufgerufen wird Ctrl-F
.
Das Problem besteht darin, dass bei aktiviertem Vimperator die Esc
Suchleiste nicht verschwindet, wenn ich nach Abschluss der Suche darauf klicke (was der Fall wäre, wenn Vimperator deaktiviert wäre), weil Vimperator Esc
die Zuordnung abfängt.
Meine Frage lautet also: Wie kann ich erreichen, dass die Suchleiste wie gewohnt verschwindet, wenn ich Esc
eine Taste drücke?
Antwort1
Wenn Vimperator aktiviert ist, i+CTRL+f
wird beim Eintippen die Suchleiste angezeigt. Und es ist auch einfach, sie zu schließen.
Versuchen Sie diesen Befehl:
:js document.getElementById("FindToolbar").close();
Oder erstellen Sie eine Karte: (Fügen Sie die folgenden Zeilen zu „~/.vimperatorrc“ hinzu)
noremap <c-s-f> :js document.getElementById("FindToolbar").close();<cr>
inoremap <c-s-f> <esc>:js document.getElementById("FindToolbar").close();<cr>
So CTRF+SHIFT+f
klappt das Tippen wie am Schnürchen!
Ein zusätzlicher Hinweis:
CTRL+f
im Befehlsmodus wird die Suchleiste angezeigt. Währenddessen CTRL-b
wird die Lesezeichen-Seitenleiste angezeigt. Das ist der Grund, warum ich auf dieses Problem stoße. Einige andere Zuordnungen könnten also hilfreich sein:
cnoremap <c-f> <right>
cnoremap <c-b> <left>
Aktualisierung:
Ab Gecko 1.9 (Firefox 25) verwenden Sie stattdessen diesen Befehl:
:js getBrowser().getFindBar().close()
Antwort2
Fügen Sie Ihrer ~/.vimperatorrc
Vimperator-Konfigurationsdatei die folgende Zuordnung hinzu:
inoremap <Esc> <S-Esc><Esc><S-Esc>
Und starten Sie Firefox unbedingt neu, damit die Änderungen übernommen werden.
Im Hintergrund geschieht Folgendes: Deaktiviert die Vimperator-Tastenabfangfunktion, gibt Esc
die Taste an Firefox weiter (wodurch die Suchleiste geschlossen wird), aktiviert die Vimperator-Tastenabfangfunktion zurück, in dieser Reihenfolge. Beachten Sie, dass diese Zuordnung nicht nur für die Suchleiste gilt, sondern für alle insert mode
Formulare (jeden Textbereich, in den Sie etwas eingeben können), aber das ist wahrscheinlich sowieso das, was Sie wollen.