Readline: Unix-Wort-Rubout, aber rückwärts, ist das möglich?

Readline: Unix-Wort-Rubout, aber rückwärts, ist das möglich?

Ich versuche, meinen so einzurichten, .inputrcdass er eine Rückwärtsbewegung ausführt unix-word-rubout, aber derzeit gelingt mir das nicht.
Ich habe M-win 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-wfunktioniert, 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-wVerhalten, 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 wund aZeichen können nach Ihrem Wunsch geändert werden.

Wie funktioniert es

kill-regionLassen 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.

verwandte Informationen