Ich habe festgestellt, dass Bash eine Abkürzung für ctrl+ hat, Tdie die letzten beiden Zeichen vor dem Cursor vertauscht.
Ich frage mich, warum sich die Ingenieure dazu entschlossen haben.
- Wurde es von einer früheren Konvention geerbt?
- Oder gibt es einen praktischen Zweck, für den dies häufig verwendet wird?
bash
keyboard-shortcuts
history
Philip Kirkbride
quelle
quelle
bash
als solche, sondernreadline
(welche Bash für die Eingabe an der Eingabeaufforderung verwendet). Ihre Bash verwendetemacs
Tastenbelegungen. ); Sie können , wenn Sie ein Editor Wars - Partisanen zu vi Tastenzuordnungen ändern sanctum.geek.nz/arabesque/vi-mode-in-bash Es gibt ein paar „Cheat-sheets“ fürreadline
: hier readline.kablamo.org/emacs .html und readline.kablamo.org/vi.html .readline
ChangeLog
Hinweisen dazu. Ursprünglich wurde die Verknüpfung in Bash selbst behandelt, wenn auch nur kurz, bevor sie herausgezogen wurdereadline
- aber die Verknüpfung kam von Emacs zu Bash (ich weiß nicht, ob sie in Emacs erfunden wurde oder von woandersher kam).Antworten:
Dies wird (durch readline) von GNU Emacs geerbt, das control- Tzum Transponieren von Zeichen verwendet:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Beachten Sie, dass der Zeileneditor von bash standardmäßig im Emacs-Modus ausgeführt wird. Sie können ihn jedoch auch in den vi-Modus versetzen, wenn Sie dies vorziehen.
quelle
Es ist sehr nützlich, Tippfehler schnell zu beheben:
wird
mit einer einzigen CtrlT.
Mit können Sie auch AltTWörter tauschen ( z. B. beim Wechseln zwischen
service
undsystemctl
...).Historisch gesehen kam das CtrlTFeature höchstwahrscheinlich von Emacs zu Bash. Es wurde wahrscheinlich von einem anderen Herausgeber nach Emacs kopiert. 1980 war es in Stanfords E-Editor (siehe Essential E Seite 13) enthalten, und E hatte einen starken Einfluss auf Richard Stallman (wie in Free as in Freedom beschrieben ). Es wurde in sehr frühen Versionen von Bash implementiert, bevor es 1989 zum ersten Mal veröffentlicht wurde, als es in die
readline
Bibliothek ausgelagert wurde, in der es sich heute befindet (der allererste Eintrag in denreadline
ChangeLog
Hinweisen dazu).quelle
word1 word2 word3
zu,word3 word2 word1
wenn es um ausgeführt wirdword3
.Diese Tastenkombination, eine vom
emacs
Editor geerbte Bindung , bewirkt, dass die letzten 2 eingegebenen Zeichen am Ende der Zeile vertauscht werden. Sie wird in der Mitte einer Zeile verwendet und vertauscht das Zeichen links vom Cursor und das Zeichen unter dem Mauszeiger.Es mag vergeblich erscheinen, eine Bindung für ein so selten verwendetes Merkmal zu haben, das mit ein paar weiteren Tastenanschlägen leicht erreicht werden kann. Alte Timer, wie ich sie oft benutze, haben in den Tagen von 300-Baud-Modems Ende der 70er Jahre, besonders in der Mitte langer Leitungen, etwas Übertragungszeit gespart.
Ein ähnlicher und nützlicherer Befehl, der an Alt+ gebunden ist T, transponiert die Wörter links und rechts vom Cursor.
Twurde gewählt, weil es sich um den ersten Umsetzungsbrief handelt . Andere Bindungen mit ähnlicher Herkunft sind:
Diese im GNU-Readline-Paket implementierten Bindungen sind daher in allen Programmen verfügbar, die sie für Benutzereingaben verwenden, z. B. bash , aber auch gdb , bc , ...
Einige davon sind auch in anderen Umgebungen verfügbar: Die Firefox-URL-Eingabezeile, Texteingabefelder in der grafischen Benutzeroberfläche von OS / X und viele X-basierte Fenstermanager.
vim- Benutzer können die entsprechenden Bindungen über eine Umgebungsvariable auswählen.
quelle
Alt
undCtrl
Versionen dieser Tastenanschläge auf konsistente Weise zusammenhängen.C-t
scheint aber nichts zu tun. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsEs ist sehr nützlich für das Korrigieren von kleinen, zufällig verteilten Letternpaaren.
(Da ich an beiden Handgelenken starke RSI habe, benutze ich diese häufig ...)
quelle
Ein sehr schnell zu behebender Tippfehler. Bewirkt den sofortigen 2-Korrektorblock vor dem Kursor.
Wenn Sie tippen
ls-
und ein Leerzeichen zwischenls
& Bindestrich einfügen möchten , können Sie Ctrl+ verwendenTDies funktioniert, wenn Sie ein Leerzeichen nach dem Bindestrich haben und dann Ctrl+ tunT
quelle