Wie kann ich nach Drücken von esc in zsh (vi-Modus) wieder in den „normalen“ Bearbeitungsmodus zurückkehren?

7

Ich benutze zshin vi-mode.

Wenn ich in den Normalbetrieb gehen mit ESCund dann zurück in den Einfügemodus (zum Beispiel unter Verwendung von i, aoder s), der Zeileneditor Art „schützt“ , der Teil der Linie vor dem Zeichen, an dem ich war , als Insert - Modus Neueingabe .

Ich habe es für das Backspace-Zeichen behoben, indem ich es mit erneut gebunden habe

bindkey "^?" backward-delete-char

Aber es gibt noch andere Bindungen ^W, die nicht sofort funktionieren (wahrscheinlich, weil sie gebunden sind vi-*).

Wenn ich es richtig verstehe, ist dieses Verhalten normal vi.

Gibt es eine Möglichkeit, sich so zu zleverhalten, vimohne so viele Schlüssel neu binden zu müssen?

groxxda
quelle

Antworten:

3

AFAICT, die einzigen problematischen Widgets sind:

vi-backward-delete-char
vi-kill-line
vi-backward-kill-word

Also könntest du es tun

zle -A kill-whole-line vi-kill-line
zle -A backward-kill-word vi-backward-kill-word
zle -A backward-delete-char vi-backward-delete-char
Stéphane Chazelas
quelle
cntl-uscheint immer noch vom Normal / Insert-Modus-Schalter betroffen zu sein.
Keith Hughitt