Ich habe gerade die Wunder von entdeckt set -o vi
und bin neugierig, ob es möglich ist, diesen vi-Shell-Modus auf die gleiche Weise anzupassen, wie Sie vi oder vim anpassen können?
Erstellen Sie beispielsweise eine benutzerdefinierte Tastenkombination, um esc
? eine bequemere Taste oder Tastenkombination zuzuordnen.
Wenn es derzeit nicht unterstützt wird, wie schwierig wäre es, den Quellcode des Programms zu ändern und einige Anpassungen fest zu codieren, oder wäre das eine schlechte Idee?
Antwort1
Ja, Sie können die Tastenzuordnungen (für den vi- oder den emacs-ähnlichen Modus) mit dem bind
integrierten Befehl ändern. Dies ist eigentlich eine Readline-Funktion (Sie können also vi-ähnliche Bindungen in allen Readline-Programmen haben, nicht nur in Bash).
Die Taste, nach der Sie suchen, heißt vi-movement-mode
und ist standardmäßig \e
(Escape). Sie könnten sie zusätzlich an (und das ist ziemlich albern) Gleichheitszeichen wie folgt binden. Die zweite Zeile entfernt die Bindung an Escape:
$ bind "=":vi-movement-mode
$ bind -r "\e"
Beim Ausführen bind -p
werden Ihnen alle Tasten angezeigt, die Sie binden können, und ihre aktuellen Bindungen (sofern vorhanden).
Sie können bind
Befehle in Ihr eingeben .bashrc
oder es bearbeiten, ~/.inputrc
damit es auf alle von Ihnen ausgeführten Readline-Programme angewendet wird. Die Readline-Dokumente enthalten alle Einzelheiten.