Schlüsselfolge an Escape binden, zsh


11

Wie würde ich Karte jjzu Escin zsh?

Ich versuche, eine Tastenbelegung neu zu erstellen, die ich in vim eingerichtet habe, wo ich sie jjzugeordnet habe, ESCdamit sie bei zweimaligem Drücken jdas an <Esc>an vim sendet , sodass ich bequemer in den normalen Modus wechseln kann.

Ich habe es bereits versucht bindkey 'jj' ^[und werde es gleich versuchen bindkey 'jj' ^[[, aber ich bezweifle, dass es funktionieren wird. Ich habe auch die Liste der von zsh im normalen Modus bereitgestellten Befehle überprüft, aber ich habe nichts gesehen, was normaloder enthielt escape.

HINWEIS
Die ^[Zeichen in meiner ~/.zshrcDatei sind tatsächlich fest codierte Escapezeichen. nicht nur die Charaktere ^und [.

Antworten:


12

Sie müssen -statsächliche Zeichenfolgen anstelle von Widgets binden:

bindkey -s jj '\e'

Obwohl Sie hier wahrscheinlich jjdem vi-cmd-modeWidget zuordnen möchten :

bindkey jj vi-cmd-mode

(Hinweis zum Binden im Einfügemodus, nicht im Normal- / Befehlsmodus)


1
der zweite wirkt wie ein Zauber, danke!
Alexej Magura

2
HINWEIS Einstellung KEYTIMEOUTscheint die Schlüsselbindung zu brechen.
Alexej Magura

@AlexejMagura fügt nur hinzu: Wenn Sie KEYTIMEOUT zu niedrig einstellen, kann zle kein doppeltes Drücken erkennen.
UltraMaster
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.