Kann ich dafür sorgen, dass sich der Löschbefehl wie Strg-L in Bash verhält?

Kann ich dafür sorgen, dass sich der Löschbefehl wie Strg-L in Bash verhält?

Es scheint, dass clearund Bash Ctrl- Lziemlich unterschiedlich sind; clearentfernt alle vorherigen Terminalinformationen vollständig (Sie können also nicht nach oben scrollen), während Ctrl- Lnur den Bildschirm scrollt, sodass der Cursor oben auf der Seite ist, sodass Sie immer noch nach oben scrollen und vorherige Informationen sehen können. Ich bevorzuge das Ctrl- LSystem bei weitem. Gibt es eine Möglichkeit, dies zu überschreiben, clearsodass es ein Ctrl- ausführt L, anstatt alle vorherigen Terminalinformationen zu löschen? Das ist kein großes Problem, aber ich frage mich nur aus Neugier, ob es eine Möglichkeit gibt, einen Alias ​​zu verwenden, clearum auf meine bevorzugte Ctrl- LFunktionalität zu verweisen.

Als Randbemerkung ist mir gerade aufgefallen, dass PowerShell auch eine Bindung für Bash hat CtrlLund diese funktioniert genauso wie diese Ctrl. LEs scheint, dass die PowerShell-Entwickler viel von Bash übernommen haben, während cmd.exeKonsolen diese Funktionalität nicht haben.

Antwort1

Gibt es eine Möglichkeit, das Löschen außer Kraft zu setzen, sodass es Strg-L ausführt, anstatt alle vorherigen Terminalinformationen zu löschen?

alias clear='tput -x clear'

Ja, Ctrl-Lin Bash (im set -o emacsModus) passiert genau dasselbe.

Oder Sie können die Escape-Taste einfach fest verdrahten. alias clear='printf "\033[H\033[2J"'Das sollte bei den meisten Terminalemulatoren funktionieren und setzt nicht voraus, dass Sie sie installiert haben ncursesoder haben bash.

NB: dieclearDas Applet von Busybox löscht den Scrollback-Puffer NICHT, Sie müssen also nichts Besonderes tun, wenn Sie ein Busybox-basiertes System verwenden, wie es bei den meisten eingebetteten Linux-Systemen der Fall ist.

Antwort2

clearist ein Terminalbefehl, Auszug aus man clear:

BESCHREIBUNG clear löscht Ihren Bildschirm, wenn dies möglich ist, einschließlich des Scrollback-Puffers (wenn die erweiterte „E3“-Funktion definiert ist). clearsucht in der Umgebung nach dem Terminaltyp, der durch die Umgebungsvariable TERM angegeben wird, und dann in der Terminfo-Datenbank, um zu ermitteln, wie der Bildschirm gelöscht werden soll. clearschreibt in die Standardausgabe. Sie können die Standardausgabe in eine Datei umleiten (was verhindert, dass „clear“ den Bildschirm tatsächlich löscht) und später cat die Datei auf den Bildschirm umleiten und ihn an dieser Stelle löschen.

Ctrl+ list eine Tastenkombination fürreadline's clear-screenBefehl ( man 3 readline).

Löscht den Bildschirm und zeichnet dann die aktuelle Zeile neu, wobei die aktuelle Zeile oben auf dem Bildschirm bleibt. Mit einem Argument aktualisiert man die aktuelle Zeile, ohne den Bildschirm zu löschen.


Ich kann keine Möglichkeit finden, einen Alias clear​​für den Readline clear-screen-Befehl zu erstellen, und möglicherweise ist es überhaupt nicht möglich.

verwandte Informationen