ANSI X3.64 Befehlsreferenz

TCC unterstützt die ANSI-Norm X3.64, die es Ihnen ermöglicht, den Cursor, die Bildschirmfarbe und andere Anzeigeattribute durch Sequenzen von Sonderzeichen zu beeinflussen, die in den an die Anzeige gesendeten Text eingebettet sind. Diese Sequenzen werden als "ANSI-Befehle" bezeichnet. (Eine allgemeine Beschreibung dieser Funktion finden Sie unter ANSI-Unterstützung.) Aufgrund des Designs von Windows , TCC keine ANSI X3.64-Unterstützung für externe Anwendungen bieten. (Wenn Sie Windows 10 Creators Update oder höher verwenden, TCC die eingebaute ANSI-Unterstützung für die Konsole.)

 

TCC unterstützt die meisten gängigen ANSI X3.64-Bildschirmbefehle, bietet aber nicht den kompletten Satz an Optionen, der von den ANSI X3.64-Treibern einiger Betriebssysteme unterstützt wird (zum Beispiel, TCC enthält beispielsweise keine ANSI X3.64-Tastensubstitutionen; diese Funktionalität wird bereits durch Tasten-Aliase bereitgestellt ). Dieser Abschnitt ist eine Kurzreferenz zu den ANSI X3.64-Befehlen, die von TCC.

 

Die ANSI X3.64-Unterstützung in TCC kann mit der  Konfigurationsoption ANSI Colors oder dem  Befehl SETDOS /A  aktiviert oder deaktiviert werden. Ob die ANSI X3.64-Unterstützung aktiviert ist, können Sie mit der  internen Variable_ANSI überprüfen .

 

Ein ANSI X3.64-Befehlsstring besteht aus drei Teilen:

 

<ESC>[Das ASCII-Zeichen ESC, gefolgt von einer linken Klammer. Diese beiden Zeichen müssen in allen ANSI X3.64-Zeichenfolgen vorhanden sein.
parametersOptionale Parameter für den Befehl, normalerweise numerisch. Wenn mehrere Parameter vorhanden sind, werden sie durch Semikolon getrennt.
command EinBefehl mit einem Buchstaben. (Groß- und Kleinschreibung beachten!)

 

Um zum Beispiel den Cursor in Zeile 7, Spalte 12 zu positionieren, lautet der ANSI X3.64-Befehl:

 

<ESC>[7;12H

 

Der  Parameterteil dieses Befehls ist "7;12" und der  Befehlsteil ist "H".

 

Um ANSI X3.64-Befehle an den Bildschirm zu übertragen, können Sie den  Befehl ECHO verwenden .  Das ESC-Zeichen kann entweder direkt in die Zeichenkette eingefügt werden (wenn Sie die Zeichenkette in eine Stapeldatei einfügen und Ihr Editor ein solches Zeichen einfügt), oder Sie verwenden das interne "Escape"-Zeichen (Standard: Caret, [^]), gefolgt von einem kleinen "e".

 

Die oben gezeigte Sequenz könnte beispielsweise mit einem dieser beiden Befehle aus einer Stapeldatei übertragen werden (im ersten Fall wird direkt ein ESC-Zeichen verwendet, unten dargestellt durch "<ESC>"; im zweiten Fall wird ^e verwendet):

 

echo <ESC>[7;12H

echo ^e[7;12H

 

Sie können auch ANSI X3.64-Befehle in Ihre Eingabeaufforderung aufnehmen , indem Sie $e verwenden, um das <ESC>-Zeichen zu senden.

 

Befehle

 

Der interne TCC ANSI X3.64-Interpreter unterstützt die unten aufgeführten X3.64-Befehle. Variable Parameter werden in Kleinbuchstaben kursiv dargestellt, z. B. #. row und attr, und müssen bei Verwendung der Befehle durch den entsprechenden dezimalen Zahlenwert ersetzt werden. Der Standardwert für row, rows, col, und cols ist 1.

 

<ESC>[rowsA

Cursor zeilenweise aufwärts (Standardwert ist 1)

<ESC>[rowsB

Cursorzeilenweise abwärts (Standardwert ist 1)

<ESC>[b

Wiederholung des vorherigen Zeichens

<ESC>[#b

Wiederholung des vorherigen Zeichens # mal

<ESC>[colsC

Cursornach rechts durch Spalten (Standardwert 1)

<ESC>[colsD

Cursornach links durch Spalten (Standardwert 1)

<ESC>[d

Cursor in die erste Zeile bewegen

<ESC>[rowd

Cursorin eine Zeile bewegen

<ESC>[E

Cursor eine Zeile nach unten und zur ersten Spalte

<ESC>[rowsE

Cursorzeilenweisenach unten und in die erste Spalte

<ESC>[F

Cursor eine Zeile nach oben und in die erste Spalte

<ESC>[rowsF

Cursorzeilenweisenach oben und in die erste Spalte

<ESC>[row;colf

Cursorposition setzen, wie bei Befehl "H

<ESC>[G

Cursor in Spalte 1 bewegen

<ESC>[colG

Cursor in die Spalte verschieben

<ESC>[H

Cursor auf links oben setzen

<ESC>[row;H

Cursor auf Zeile, Spalte 1 setzen

<ESC>[row;colH

Cursorposition setzen (links oben ist Zeile 1, Spalte 1)

<ESC>[4h

Einfügemodus

<ESC>[?25h

Cursor anzeigen

<ESC>[J

Löschen vom Cursor bis zum Ende der Anzeige

<ESC>[0J

Löschen vom Cursor bis zum Ende der Anzeige

<ESC>[1J

Löschen vom Anfang der Anzeige bis zum Cursor

<ESC>[2J

Gesamten Bildschirm löschen

<ESC>[K

Löschen vom Cursor bis zum Ende der Zeile

<ESC>[1K

Löschen vom Anfang der Zeile bis zum Cursor (einschließlich)

<ESC>[2K

Zeile löschen

<ESC>[L

Eine Leerzeile einfügen

<ESC>[#L

# Leerzeileneinfügen

<ESC>[l

Cursor einen Tabulator vorwärts bewegen

<ESC>[#l

Cursor um # Tabulatoren vorwärts bewegen

<ESC>[4l

Überstreichen-Modus

<ESC>[?25l

Cursor ausblenden

<ESC>[M

Eine Zeile löschen

<ESC>[#M

# Zeilenlöschen

<ESC>[attr1;attr2;...m

Anzeigeattribute einstellen; siehe Tabelle der Attributwerte unten

<ESC>[L

Ein Zeichen löschen

<ESC>[#L

# Zeichenlöschen

<ESC>[s

Cursorposition speichern (darf nicht verschachtelt werden)

<ESC>[#S

Nach oben blättern

<ESC>[#T

Abwärts blättern

<ESC>[u

Gespeicherte Cursorposition wiederherstellen (oder oben links, wenn nichts gespeichert wurde)

<ESC>[?5W

Tabulator nach jeweils 8 Spalten setzen

<ESC>[?5;#W

Tabulator alle # Spalten setzen

<ESC>[X

Ein Zeichen löschen

<ESC>[#X

# Zeichen löschen

<ESC>[Z

Cursor einen Tabulator zurücksetzen

<ESC>[#Z

Cursor um # Tabulatoren zurücksetzen

<ESC>[?7h

Zeilenumbruch am Bildschirmrand

<ESC>[?7l

Zeilen am Bildschirmrand nicht umbrechen

<ESC>[21t

Sende "^e]lTitle^e\" (den Fenstertitel der Konsole) an die Konsoleneingabe

<ESC>]0;TitleBEL

Konsolentitel auf "Titel" setzen. BEL ist das ASCII-Zeichen 7

<ESC>]4;...BEL

Farbe(n) ändern

<ESC>]104;...BEL

Farbe(n) zurücksetzen

<ESC>[@

Ein Leerzeichen einfügen

<ESC>[#@

# Leerzeicheneinfügen

<ESC>8

Cursor wiederherstellen

<ESC>7

Cursor speichern

<ESC>[#;#;#...,~

Ton abspielen

<ESC>c

Zurücksetzen

<ESC>D

Index

<ESC>E

Nächste Zeile

<ESC>H

Horizontaler Tabulator setzen

<ESC>M

Index umkehren

 

 

Anzeige-Attribute

 

Die Escape-Sequenzenm setzen Anzeigeattribute. FolgendeAttributwerte werdenfür den  Befehlmverwendet :

 

0Alle Attribute auf Standardwerte zurücksetzen
1Helle Vordergrundfarbe (hohe Intensität)
2Normale Intensität der Vordergrundfarbe
4Heller (hohe Intensität) Hintergrund
5Heller (hohe Intensität) Hintergrund
7Video umkehren
8Verdeckt (Vordergrund wird zum Hintergrund)
22 Fettaus (der Vordergrund ist nicht intensiv)
24Hintergrund ist nicht intensiv
25Hintergrund ist nicht intensiv
27Normales Video
28Verdeckt aus
30..37Vordergrundfarbe
40..47Hintergrundfarbe
90..97Helle Vordergrundfarbe
100..107Helle Hintergrundfarbe

 

Vordergrund Code

Hintergrund Code

Farbe

30

40

Schwarz

31

41

Rot

32

42

Grün

33

43

Gelb

34

44

Blau

35

45

Magenta

36

46

Cyan

37

47

Weiß

90

100

Grau

91

101

Hellrot

92

102

Helles Grün

93

103

Helles Gelb

94

104

Leuchtendes Blau

95

105

Helles Magenta

96

106

Helles Cyan

97

107

Helles Weiß

 

Wenn Sie mehrere Attribute einstellen, kombinieren Sie diese in einem einzigen Befehl (mit dem Verkettungsoperator ; ). Die Attributeinstellungen sind kumulativ und unabhängig von der Reihenfolge (außer Code 0, der auf die Standardeinstellung zurückgesetzt wird).

 

Beispiele

 

Leuchtend roten Vordergrund einstellen, ohne den Hintergrund zu ändern:

 

echo ^e[31;1m

 

Die Anzeige auf helles Cyan auf Blau setzen und den Bildschirm löschen:

 

echo ^e[44;36;1m^e[2J

 

Richten Sie einen Prompt ein, der die Cursorposition speichert, das Datum und die Uhrzeit in der obersten Zeile in hellem Weiß auf Magenta anzeigt, dann die Cursorposition wiederherstellt, die Farbe auf helles Cyan auf Blau setzt und den Standardprompt anzeigt:

 

prompt $e[s$e[1;1f$e[45;37;1m$e[K$d $t$e[u$e[44;36;1m$p$g