Wie kann man bequem in der zsh-Befehlszeile in den vi-Befehlsmodus wechseln?

22

In vi habe ich 'jj' als Escape-Zeichen festgelegt, um in den Befehlsmodus zu wechseln, ohne die nervige Escape-Taste zu verwenden. Jetzt möchte ich dasselbe für die Befehlszeilenbearbeitung haben, für die ich den vi-Modus verwende. Ich habe bereits folgende Lösung gefunden:

bindkey '^j' vi-cmd-mode

lässt dich mit control-j in den befehlsmodus wechseln. Noch auf der Suche nach einer Lösung ohne Modifier-Keys wie 'jj' oder ähnlichem.

Eman Resu
quelle
4
Warum nicht einfach Caps Lock neu zuordnen, um zu entkommen?
kyrias

Antworten:

30

Hinweis: Sie sollten sich man zshzleviele nützliche Informationen zum Anpassen bindkeyund Emulieren ansehen GNU readline.

Dies ist , wie ich abgebildet jjauf Esc:

bindkey -M viins 'jj' vi-cmd-mode

Wenn Sie bei der Unterscheidung zwischen dem Einsatz-Modus und Normal-Mode interessiert sind, können Sie den Vorschlag Akira ausprobieren erwähnt hier

Ehtesh Choudhury
quelle
Ja! funktioniert perfekt. vielen Dank!
Eman Resu
Gibt es irgendwelche Voraussetzungen, die erfüllt sein müssen, bevor dies in zsh funktioniert? Oder Möglichkeiten zum Debuggen der Tastenkombinationen? Nach dem Einfügen dieses Befehls passiert nichts. jj funktioniert immer noch nicht.
UltraMaster
5
Ich hatte KEYTIMEOUT zu niedrig eingestellt, das war der Grund.
UltraMaster
@Ultramaster macht einen tollen Punkt. Wenn Sie KEYTIMEOUT bereits für die Geschwindigkeit festlegen, würde ich> = 20 Millisekunden empfehlen. Wieexport KEYTIMEOUT=20
Handwerk