Ich möchte in einer Readline-Umgebung in den vi-Bearbeitungsmodus wechseln. Aber ich möchte 'set -o vi' nicht verwenden. Ich möchte vorübergehend über eine Tastenkombination wechseln. Die Manpage sagt, dass ich das machen kann M-C-j. Aber das funktioniert bei mir nicht.
Ich benutze Ubuntu und ein xterm. Funktioniert auch nicht unter dem Gnome-Terminal.
ESC E
. Wenn Sie anhalten, wechseln Sie vom vi-Einfügemodus in den vi-Befehlsmodus oder brechen einfach den aktuellen vi-Befehl ab.Bash deaktiviert diese und einige andere Readline-Verknüpfungen explizit. Siehe die
initialize_readline()
Funktion im Bash-Quellcode ( http://www.catonmat.net/download/bashline.c ):Ich bin anscheinend nicht in der Lage, dieses Verhalten mithilfe der Readline-Konfigurationsdatei (.inputrc) zu überschreiben.
quelle
~/.inputrc
Folgendes habe ich für meine verwendet , basierend auf der Antwort von slm.Ich habe die
$if mode=
Syntax ausprobiert , aber ich denke, dass sie statisch aufgelöst ist (einmal beim Lesen der Datei), sodass sie nicht wie erwartet funktioniert. Daher müssen wir zu jeder Tastaturbelegung wechseln und ihre Tastaturbelegung ändern, auch wenn sie zuvor auf einer anderen Tastaturbelegung festgelegt wurde. Am Ende sage ich mit welchem Modus ich anfangen möchte.quelle
Ich habe versucht, Emacs-Mappings im vi-Modus zu verwenden. Ich endete mit:
Es ist hilfreich, die Manpage für
readline
und denREADLINE
Abschnitt auf derbash
Manpage zu lesen .quelle