Ich versuche, meinen so einzurichten, .inputrc
dass er eine Rückwärtsbewegung ausführt unix-word-rubout
, aber derzeit gelingt mir das nicht.
Ich habe M-w
in meinem zugeordnet .inputrc
.
Das funktioniert nicht:
"\eu": universal-argument
"\ew": "\eu-1\C-w"
noch das hier:
"\ew": "\e-1\C-w"
nicht einmal die interaktive Ausführung in der Shell durch Drücken M--
von gefolgt von C-w
funktioniert, d. h. es werden ständig Wörter links vom Cursor gelöscht.
PS: Ich weiß, dass es andere Kill/Rubout-Readline-Befehle gibt, aber ich hätte wirklich gerne das C-w
Verhalten, Wörter mit einem Leerzeichen als Trennzeichen zu beenden, nur umgekehrt.
Antwort1
Kurz gesagt, fügen Sie die folgenden Zeilen hinzu ~/.inputrc
:
"\ew": kill-region
"\ea": '\e \C-] \ew'
Ort w
und a
Zeichen können nach Ihrem Wunsch geändert werden.
Wie funktioniert es
kill-region
Lassen Sie uns dem Befehl readline eine Tastenkombination zuweisen , zum Beispiel Alt-w
"\ew": kill-region
dann weisen wir das folgende Makro einer anderen Sequenz zu, sagen wir Alt- a:
"\ea": '\e \C-] \ew'
das die folgenden Aktionen ausführt:
\e<SPACE>:
Setzen Sie die Markierung dort, wo der Cursor ist
\C-]<SPACE>:
Suchen Sie nach einem Leerzeichen und bewegen Sie den Cursor dorthin
\ew:
Löscht den Bereich zwischen Markierung und Cursor.