Weiterführende Literatur

Weiterführende Literatur

Ich bin ein begeisterter Benutzer desFischschaleund es gefällt mir sehr.

Eine Frage jedoch:

auf der Seitehttps://fishshell.com/docs/2.1/index.htmlEs gibt einen Absatz mit dem Titel"Befehlszeileneditor". Es listet viele nützliche Tastenkombinationen auf.

Am interessantesten für mich istStrg-L. Laut Beschreibung: "Strg-L löscht und malt den Bildschirm neu". Ich habe es ausprobiert und es funktioniert wie gewünscht. Allerdings erzeugt es einige Zeichen, die zur vorherigen Eingabeaufforderung hinzugefügt werden. Das sieht man, wenn man zurückscrollt.

Beispiel:

rosika@... ~/Schreibtisch> [3;J
rosika@... ~/Schreibtisch>

Das [3;Jist also das, wonach ich frage. Es [handelt sich tatsächlich um eine Art Rechteck mit (glaube ich) 4 Ziffern darin.

Kann mir jemand sagen, warum dieses Phänomen auftritt? Was hat es damit auf sich und soll das so sein?

Vielen Dank im Voraus.

Grüße

Rosika

Mein System:

Linux/Lubuntu 16.04.4 LTS, 64 Bit

Fisch V. 2.2.0-3

Antwort1

Unix-Terminals werden mit Inhalt gefüllt, indem Steuersequenzen und Text interpretiert werden, die in einem einzigen Stream vermischt sind. Viele Zeichen können sowohl Text als auch ein Steuercode sein und ihre Bedeutung hängt vom Kontext ab.

<esc> [3;Jist eine solche Sequenz. Im falschen Kontext wird sie ausgedruckt, im richtigen Kontext ist sie Teil des Zurücksetzens der Anzeige.

Weitere Einzelheiten finden Sie auf den Manpages termcap, console_codes, und .tput

Antwort2

Ihr Terminalemulator stimmt nicht mit dem Wert Ihrer TERMUmgebungsvariable überein. Der häufigste Fehler ist die Annahme, dass etwas, das nicht XTerm ist, mit den Termcap/Terminfo-Datensätzen mit dem Namen xtermoder xterm-newoder übereinstimmt xterm-256color.

Ihr Terminfo-Eintrag gibt die relativ neue E3Funktion an (derzeit angegeben für linux, putty, putty-256color, xterm-basic, , xterm-new, xterm, xterm-256colorund einige andere Terminaltypen), die Programmen mitteilt, dass ein Scrollback-Puffer zu löschen ist und wie dieser gelöscht wird. Ihr Terminalemulator unterstützt diese Steuersequenz jedoch nicht und druckt stattdessen das aus, was Sie als Antwort darauf sehen. Die Fish-Shell führt den clearBefehl aus, der nun diese Terminfo-Erweiterung nutzt.

Der im Wert Ihrer TERMUmgebungsvariablen angegebene Name muss mit dem Namen eines Termcap/Terminfo-Datensatzes übereinstimmen, der die Funktionsweise Ihres Terminalemulators korrekt beschreibt.

Weiterführende Literatur

verwandte Informationen