Ich habe versehentlich ctrl+ Lin das Terminal eingegeben und mein Terminalfenster hat eine Bildschirmgröße übersprungen. Ich habe mir die Tastaturkürzel unter "Bearbeiten" -> "Tastaturkürzel" angesehen und sie nicht gefunden.
Was macht ctrl+ Lund wo ist es definiert?
command-line
shortcut-keys
Parto
quelle
quelle
clear
, weil es nicht Ihre Terminal Geschichte nicht löscht, während der Befehl derclear
Fall ist, wenn Sie das Add --x
Argument, etwa so:clear -x
.Wenn die von Ihnen verwendete Shell sie nicht abfängt, geben Sie ein "Form-Feed" -Zeichen in Ihr Terminal ein. Wenn die Terminalanwendung den Tastenanschlag nicht abfängt oder auf irgendeine Weise verwendet, wird Ctrl+ Letter in den ASCII-Code des Buchstabens minus 64 (1) übersetzt. 65 ist der ASCII-Code von 'A', 'L' ist der 12. Buchstabe -> Code 76. Wenn die Shell nicht weiß, was mit dem Code zu tun ist, gibt sie ihn aus.
Das Drucken eines FF-Zeichens führte zu einer neuen Seite auf einem Zeilendrucker und einem klaren Bildschirm auf dem Terminal (ja, ich habe damals einen VT-52 mit 300 Baud verwendet).
Also ist Ctrl+ L12, was FF ist. Ebenso ist Ctrl+ Iein TAB und Ctrl+ Gklingelt ---, wenn das Terminal oder die Shell es nicht abfängt, wie zum Beispiel Ctrl+ C.
Bemerkung aus der anderen Antwort: Es scheint, dass bash do intercept CTRL- Lund do a
clear
. Schön, dass diebash
Autoren die Taste mit einem Befehl assoziiert haben, der mehr oder weniger genau so funktioniert wie der ASCII-Code auf alten Terminals!Andererseits funktioniert bei mir
zsh
die Kombination CTRL- Ials TABund CTRL- Hals Backspace(2).Altes nettes ASCII ... (Beachten Sie, dass der Buchstabe L in Spalte 4, Zeile 12 steht und den ASCII-Code 4 * 16 + 12 = 76 hat.)
Originalbild hier , aus Wikipedia-Artikel über ASCII .
Fußnoten:
(1) Ctrlwirklich verwendet, um das Bit 7 zu löschen.
(2) Dies ist die Quelle für den Witz "Wort nicht entfernen", den Sie manchmal finden, zum Beispiel "das war eine schlechte ^ H ^ H ^ Hnicht so schöne Idee" ... (mit normalerweise einem Wort, das stärker als schlecht ist!)
quelle
^H
s oder^W
s ist hilfreich, wenn Sie keine durchgestrichenen Zeichen verwenden können. :)Control-L
wird von bash abgefangen und interpretiert (tatsächlich von derreadline
Bibliothek , die die interaktive Bearbeitung in der Befehlszeile übernimmt). Es ist an dieclear-screen
Funktion gebunden , wie @souravc schrieb.Hinweis zur Bedeutung von
Control-L
: Es ist in der ASCII-Zeichentabelle als Form Feed definiert, dies bedeutet jedoch nichts, es sei denn, ein Programm interpretiert es entsprechend. Das Terminal löscht den Bildschirm nicht, wenn ein Formular-Feed angezeigt wird, da Sie dies überprüfen können, indem Sie ein ^ L in einer Datei speichern und die Datei mit druckencat
. Wennbash/readline
das^L
angezeigt wird, führt es dieclear-screen
Funktion aus. Dadurch wird eine Zeichenfolge gesendet, die von Ihrem Terminalemulator (wie durch termcap oder terminfo beschrieben) verstanden wird, und der Bildschirm wird gelöscht.Bei sehr alten Druckern
^L
würde a den Druckvorgang auf dem nächsten Blatt beschleunigen, daher der Name "Seitenvorschub". Moderne Terminals und Terminalemulatoren folgen jedoch einem neueren ANSI-Standard, bei dem Steuerbefehle aus mehrstelligen "Escape-Codes" bestehen , die mit^[
(Escape) beginnen. Wenn bash Ihre sieht^L
, sendet es wahrscheinlich die Sequenz mit zwei BefehlenESC [ H ESC [ J
, die sich oben links auf dem Bildschirm befindet und alles darunter löscht (daher den gesamten Bildschirm).quelle
ESC [ ESC [ J
löscht die Sequenz auch den Befehlsverlauf, während dieCTRL + L
Sequenz dies nicht tut. Die Sequenz an das Endgerät gesendet ist eherESC [ H ESC [ 2 J
, gehen Sie voran es ein Versuch , sich mit diesem Befehl:printf "\033[H\033[2J"
.Wie alle bereits ziemlich gut erklärt haben, was Ctrl+ List und tut, aber niemand hat erklärt, wie man den Befehl "umkehrt". Hier ein paar Befehle, die Sie eingeben können, um zu dem zurückzukehren, was Sie getan haben:
gibt Ihnen die letzten 20 Befehle, die Sie eingegeben haben.
gibt Ihnen die letzten 20 Zeilen der Ausgabe einer Paketinstallation, die Sie ausgeführt haben
quelle