Auf den Readline-Infoseiten:
info bash -n "Commands For Kill"
M-y
Drehen Sie den Killring und ziehen Sie den neuen Deckel ab. Sie können dies nur tun, wenn der vorherige BefehlC-y
oder lautetM-y
.
Ich verstehe, dass C-y
der zuletzt gelöschte Text „eingefügt“ wird, aber ich konnte nicht genau herausfinden, was M-y
das bewirkt.
Können Sie es erklären?
Antwort1
M-ymacht den letzten Ruck rückgängig, rotiert die Listen aller behaltenen Kill-Strings und reißt den neuen Anfang der Liste. Versuchen Sie dieses Beispiel:
- Geben Sie die 5 Zeichen ein
a b c
(keine neue Zeile) - Positionieren Sie den Cursor (mit C-b) vor dem
c
und geben Sie C-kto kill thec
oben auf dem Kill-Ring ein. - Positionieren Sie den Cursor 2 Zeichen nach links und geben Sie ein, C-kum das , zu löschen
b
. - und erneut zum Anfang der Zeile und geben Sie ein, C-kum das abzubrechen
a
.
Geben Sie jetzt C-yund ein, um das a
vom Anfang der Liste zu entfernen. Wenn Sie C-yerneut tippen, erhalten Sie lediglich ein weiteres a
. Wenn Sie jedoch sofort darauf tippen, wird M-ydas a
entfernt und durch ersetzt b
.
Wenn Sie jetzt ein anderes eingeben, C-yerhalten Sie b
, nicht a
, da der Kill-Ring gedreht wurde. Ebenso wird a das durch ein M-yersetzen .b
c
Wenn Sie die Sequenz C-ygefolgt von vielen eingeben M-y, erhalten Sie nacheinander alle Kill-Ring-Zeichenfolgen.
Antwort2
Ich bin kein Emacs-Benutzer, aber im letzten Monat habe ich mit dem Emacs-Modus in Readline als Alternative zum Vi-Modus experimentiert.
Jedes Mal, wenn Sietöten(löschen) Text, wird dieser aus dem Puffer entfernt und demTötungsring. Wenn duRuck(Einfügen) des Textes mit C-Y
, der zuletzt eingefügte Text wird an die Cursorposition gedruckt.
Wenn dusofortfolgen Sie diesem mit M-Y
(MetaAltTaste kann normalerweise durch Drücken von - Yoder Escgefolgt von ) erreicht werden , der durch den Ruck Ygedruckte Text wird durch den vorletzten gelöschten Text ersetzt. Wenn Sie darauf ein weiteres drücken , wird der eingefügte Text durch den drittletzten gelöschten Text ersetzt und so weiter. Jedes weitere Drücken von ändert den eingefügten Text in den des nächsten „Kills“ im Kill-Ring, bis Sie das Ende des Kill-Rings erreichen – wo esC-Y
M-Y
M-Y
dreht sichzurück zum letzten Kill.