Ich bin keine erweiterte Konsolen-App ** Ich kannte CSI gerade, als ich verschiedene Dinge machte, also schrieb ich es.
Eine Art von ** Escape-Sequenz **.
Das erste, was Ihnen einfällt, wenn Sie das Wort "Flucht" hören, ist "\ n".
\ n
ist ein sehr einfaches Escape, das einen Zeilenumbruch im Unix-System bedeutet, aber dieses Mal werden wir einen etwas komplizierteren Sonderausdruck verwenden.
CSI ist übrigens eine Abkürzung für * Control Sequence Introducer *.
Typische
** hier ** enthält alle Steuerelementtypen und -methoden.
~~ ** Bash scheint nicht leicht zu entkommen ** (Referenz). ~~ [Ergänzung: Kommentarinformationen] Es scheint, dass Sie mit Bash entkommen können. Das Escaping wird mit der Option "-e" angewendet, z. B. "echo -e". Auch der obige Link war eine weitere Diskussion. Wir werden korrigieren.
Im vorherigen Beispiel haben wir nun "\ n" gezeigt, um eine Linie zu brechen.
Da CSI mehrere Dinge steuern kann, ist der Steuercode nicht einer, aber es gibt ein Präfix, um zu erkennen, dass es sich um CSI handelt.
Das ist ** \ e [
** oder ** \ 033 [
** oder ** \ 0x1b [
**.
[Zusatz]
Ich dachte, Bash könnte nicht entkommen, nur "\ e [" hat es nicht unterstützt. Es ist möglich mit \ 033 [
.
Da e ein Zeichentyp ist, 033 eine Oktalzahl und 0x1b eine Hexadezimalzahl ist, ist es im Wesentlichen dasselbe, aber e ist einfacher. CSI ist eine Art [^ 1] Escape-Sequenz im engeren Sinne. Wenn Sie am Anfang "\ e" einfügen, wird der Beginn der Escape-Sequenz angezeigt, und "[" zeigt an, dass es sich um CSI handelt.
Die Steuerung von CSI ändert sich je nachdem, was Sie danach schreiben.
Steuerzeichen (kein Platz erforderlich) | Bewegung |
---|---|
n A | n Zeilen(1 Zeile, falls nicht angegeben)Heben Sie den Cursor an |
n B | n Zeilen(1 Zeile, falls nicht angegeben)Senken Sie den Cursor |
n C | n Zeichen(1 Zeichen, sofern nicht anders angegeben)Bewegen Sie den Cursor |
n D | n Zeichen(1 Zeichen, sofern nicht anders angegeben)Bewegen Sie den Cursor zurück |
n E | Bewegen Sie den Cursor auf n Zeilen(1 Zeile, falls nicht angegeben)Am Anfang unten ausrichten |
n F | Bewegen Sie den Cursor auf n Zeilen(1 Zeile, falls nicht angegeben)An den Anfang von oben passen |
n G | Setzen Sie den Cursor auf das n-te Zeichen der aktuellen Zeile(1. Zeichen, falls nicht angegeben)Passen |
n; m H | Platzieren Sie den Cursor in der n-ten Zeile, m Zeichen(1 Zeichen pro Zeile, sofern nicht anders angegeben:Oben links)Passen |
n J | Bildschirm löschen (Details werden später beschrieben) |
n K | Zeile löschen (Details werden später beschrieben) |
n S | n Zeilen (1 Zeile, falls nicht angegeben) Blättern Sie durch den Bildschirm, um fortzufahren |
n T | n Zeilen (1 Zeile, falls nicht angegeben) Scrollen Sie zurück zum Bildschirm |
n L | Fügen Sie n Zeilen (1 Zeile, falls nicht angegeben) vor der Zeile ein, in der sich der Cursor befindet |
n M | Löschen Sie n Zeilen (1 Zeile, falls nicht angegeben) aus der Zeile, in der sich der Cursor befindet |
n P | Löschen Sie n Zeichen (1 Zeichen, falls nicht angegeben) von der Cursorposition |
n P | Ersetzen Sie n Zeichen (1 Zeichen, falls nicht angegeben) durch Leerzeichen an der Position des Cursors |
n ` | Bewegen Sie den Cursor auf das n-te Zeichen der aktuellen Zeile (1. Zeichen, falls nicht angegeben) |
n a | Bewegen Sie den Cursor um n Zeichen (1 Zeichen, falls nicht angegeben) |
n d | Heben Sie den Cursor n Zeilen an der aktuellen Position an (1 Zeile, falls nicht angegeben) |
n m | SGR(Select Graphic Rendition)Parameter angeben (Details werden später beschrieben) |
s | Merken Sie sich die aktuelle Cursorposition |
u | Rufen Sie die gespeicherte Cursorposition auf |
> 3; a; b; c; d J | (b, a)Von(d, c)Rechteck bis löschen |
> 3; a; b; K | Löschen Sie die Zeichen a bis b in der aktuellen Zeile |
n | Verhalten |
---|---|
Nicht spezifiziert | Löschen Sie hinter dem Cursor zum Anfang des Bildschirms (Zeile) |
0 | Löschen Sie hinter dem Cursor zum Anfang des Bildschirms (Zeile) |
1 | Vor dem Cursor zum Ende des Bildschirms löschen (Zeile) |
2 | Löschen Sie den gesamten Bildschirm (Zeile) |
n | Bedeutung |
---|---|
Keiner | Parameter zurücksetzen |
0 | Parameter zurücksetzen |
1 | Fett gedruckt |
2 | Leichter Druck (nicht weit verbreitet) |
3 | Schräg (nicht weit verbreitet, invertiert)(n=7)Kann auch sein) |
4 | Unterstreichen |
5 | Blinken: 150 mal/In Minuten |
6 | Schnelles Blinken: 150 mal/Mehr als eine Minute (nicht allgemein unterstützt) |
7 | Rückwärtsanzeige: Vordergrund- und Hintergrundfarben werden vertauscht |
8 | Zeichen ausblenden (nicht weit verbreitet) |
9 | Stornierungslinie (nicht allgemein unterstützt) |
10 | Standardschriftart |
11–19 | (n-10)Verwenden Sie die zweite alternative Schriftart |
20 | Bruchschrift(Meistensnichtunterstützt) |
21 | Fett ausgeschaltet (nicht allgemein unterstützt),Doppelte Unterstreichung (fast nicht unterstützt) |
22 | Farbe und Betonung wiederherstellen (fett / hell) |
23 | Stellen Sie die Schräge und den Bruch wieder her |
24 | Unterstreichen abbrechen |
25 | Blinken abbrechen |
28 | Text einblenden |
29 | Löschen Sie den Durchgestrichenen |
30–37 | Vordergrundfarbe (im Wesentlichen Textfarbe)(n-30)Wechsel zur Nummer (Farbnummer wird später beschrieben) |
38 | Erweiterung der Vordergrundfarbeneinstellung.\e[38;5;n Sie können den Farbindex mit angeben(0...255)。\e[38;2;r;g;b RGB kann mit eingestellt werden(Jeweils 0...255)。 |
39 | Vordergrundfarbe zurücksetzen |
40–47 | Hintergrundfarbe(n-40)Wechsel zur Nummer (Farbnummer wird später beschrieben) |
48 | Erweiterung der Hintergrundkulisseneinstellung.\e[48;5;n Sie können den Farbindex mit angeben(0...255)。\e[48;2;r;g;b RGB kann mit eingestellt werden(Jeweils 0...255)。 |
49 | Hintergrundfarbe zurücksetzen |
Was ist das für ein nicht unterstützter Sturm ...
Nummer | Farbe |
---|---|
0 | schwarz |
1 | rot |
2 | Grün |
3 | Gelb |
4 | Blau |
5 | Magenta |
6 | Cyan |
7 | Weiß |
Es sieht so aus, wenn Sie jede Farbe grob anzeigen.
Beim tatsächlichen Einstellen des SGR
echo "\e[31mred\e[m"
Wenn Sie dies tun, wird es als "rot" in rot angezeigt.
Ebenfalls,
echo "\e[31;43mred&yellow\e[m"
Wenn Sie dies tun, wird "rot & gelb" mit einem roten gelben Hintergrund angezeigt.
Sie können mehrere Optionen gleichzeitig festlegen, indem Sie die durch ;
getrennten Optionen auf diese Weise eingeben.
** Deaktivieren Sie die Option am Ende mit "\ e [m" oder "\ e [0m" ", um unerwartetes Verhalten nach dem Beenden des CSI zu vermeiden. ** **.
[^ 1]: Genau genommen ist \ n
keine Escape-Sequenz. Im engeren Sinne bezieht es sich auf eine Steuerbytezeichenfolge, die mit "ESC (0x1B)" beginnt.
Recommended Posts