ANSI entkommen Code

ANSI Flucht-Folgen sind Charaktere, die im Text eingebettet sind, der verwendet ist, um Formatierung, Farbe und andere Produktionsoptionen auf Videotextterminals zu kontrollieren. Fast alle Endemulatoren haben vorgehabt, Textproduktion von einem entfernten Computer, und (abgesehen von Windows von Microsoft) zu zeigen, um Textproduktion von der lokalen Software zu zeigen, mindestens einige der ANSI-Flucht-Folgen zu interpretieren.

Geschichte

Fast alle Hersteller von Videoterminals haben mit dem Verkäufer spezifische Flucht-Folgen hinzugefügt, um Operationen wie das Stellen des Cursors an willkürlichen Positionen auf dem Schirm zu tun. Da diese Folgen alle verschiedenen, wohl durchdachten Bibliotheken wie termcap waren, musste so geschaffen werden Programme konnten dieselbe API für sie alle verwenden. Außerdem haben die meisten Designs das Senden von Zahlen (wie Reihe & Säule) als die binären Werte der Charaktere verlangt; für einige Programmiersprachen und für Systeme, die ASCII innerlich nicht verwendet haben, war es häufig schwierig oder unmöglich, eine Zahl in den richtigen Charakter zu verwandeln.

Der erste Standard für ANSI-Flucht-Folgen war ECMA-48, angenommen 1976. Es war eine Verlängerung einer Reihe von Charakter-Codierstandards, der erste, der ECMA-6 von 1961, ein 7-Bit-Standard ist, aus dem ASCII entsteht. ECMA-48 ist mehrere Male aktualisiert worden, und die aktuelle Ausgabe ist von 1991 5. Es wird auch durch ISO und IEC als normaler ISO/IEC 6429 angenommen. Der Name "ANSI entkommt Folge" Daten von 1981, als ANSI ECMA-48 als der Standard ANSI X3.64 angenommen hat (und später, 1997, hat es zurückgezogen).

Das erste populäre Videoterminal, um diese Folgen zu unterstützen, war der 1978 eingeführte Digital-VT100, der eine Vielfalt von "Klonen" unter dem frühsten befeuert hat, und von denen populärster der viel erschwinglichere Zenit Z-19 1979 war. Die Beliebtheit von diesen hat allmählich immer mehr zu Software (besonders Anschlagbrett-Systeme) das Annehmen geführt, dass die Flucht-Folgen gearbeitet haben, fast zu allen neuen Terminals und Emulator-Programmen führend, die sie unterstützen.

Unterstützung

Die meisten Endemulatoren, die auf Unix ähnlichen Systemen (wie xterm und der OS X Terminal) laufen, interpretieren ANSI-Flucht-Folgen. Die Linux-Konsole (der gesehene Text, wenn X nicht läuft) interpretiert sie auch. Endprogramme für Windows von Microsoft haben vorgehabt zu zeigen, dass der Text von einer Außenquelle (ein Serienhafen, Modem oder Steckdose) sie auch interpretiert. Etwas Unterstützung für den Text aus lokalen Programmen auf Windows wird durch abwechselnde Befehl-Verarbeiter wie JP-Software-TCC (früher 4NT), Michael J. Mefford ANSI.COM und der ansicon von Jason Hood angeboten.

Viele Unix-Konsole-Anwendungen (z.B, ls, grep, Schwung und Emacs) können sie erzeugen. Dienstprogramme wie Tput-Produktion sie, sowie in auf niedriger Stufe Programmierbibliotheken, wie termcap oder terminfo oder eine Bibliothek des höheren Niveaus wie Flüche.

Windows und DOS

MS-DOS 1.0 hat den ANSI oder irgendwelche anderen Flucht-Folgen nicht unterstützt. Nur einige Kontrollcharaktere (CR, LF, BAKKALAUREUS DER NATURWISSENSCHAFTEN) wurden interpretiert, es unmöglich machend, jede Art der Anwendung des vollen Schirms zu tun. Irgendwelche Anzeigeeffekten mussten mit BIOS-Anrufen (oder viel öfter durch die direkte Manipulierung der Hardware von IBM PC) getan werden.

MS-DOS 2.0 hat die Fähigkeit eingeführt, einen Gerät-Fahrer für die ANSI-Flucht-Folgen - der De-Facto-Standard hinzuzufügen, zu sein, aber andere mögen, und werden ebenso verwendet. Äußerste Langsamkeit und die Tatsache, dass es standardmäßig gemachter Gebrauch durch die fast nicht existierende Software nicht installiert wurde; Software hat fortgesetzt, die Hardware direkt zu manipulieren, um die erforderliche Textanzeige zu bekommen. ANSI.SYS und ähnliche Fahrer haben fortgesetzt, in durch Windows 98, und sogar in Windows Ich zu arbeiten, als sie auf die heimische DOS-Weise (die Charaktere gesetzt wurden, die den ganzen Schirm nehmen). ANSI.SYS arbeitet auch in NT-derived Systemen für 16-Bit-Vermächtnis-Programm-Durchführung unter dem NTVDM.

Die Win32-Konsole unterstützt ANSI-Flucht-Folgen überhaupt nicht. Software kann die Konsole mit der ioctl ähnlichen mit der Textproduktion verflochtenen Konsole-API manipulieren. Eine Software interpretiert innerlich ANSI-Flucht-Folgen im Text, der Druck-ist, und übersetzt sie zu diesen Anrufen.

Folge-Elemente

Flucht-Folgen fangen mit dem Charakter ESC (ASCII Dezimalzahl 27/Hexe 0x1B/octal 033) an. Für zwei Charakter-Folgen ist der zweite Charakter in der Reihe ASCII 64 bis 95 (zu _). Jedoch sind die meisten Folgen mehr als zwei Charaktere, und fangen mit den Charakteren ESC und (verlassen Klammer) an. Diese Folge wird CSI nach der Kontrollfolge Introducer (oder Kontrollfolge-Initiator) genannt. Das Schlusszeichen dieser Folgen ist in der Reihe ASCII 64 bis 126 (zu ~).

Es gibt einen einzeln-Buchstaben CSI (155/0x9B/0233) ebenso. Der ESC + wird Folge-Buchstaben zwei öfter verwendet als die einzeln-Buchstaben Alternative, weil Details C0- und C1-Kontrollcodes sehen. Nur die Folge-Buchstaben zwei wird durch Geräte anerkannt, die gerade ASCII (7-Bit-Bytes) oder Geräte unterstützen, die 8-Bit-Bytes unterstützen, aber die 0x80-0x9F-Kontrollcharakter-Reihe zu anderen Zwecken verwenden. Auf Terminals, die UTF-8-Verschlüsselung verwenden, nehmen beide Formen 2 Bytes, aber die Folge-Buchstaben zwei ist klarer.

Obwohl einige encodings vielfache Bytes pro Charakter verwenden, wird die folgende Diskussion auf ASCII Charaktere eingeschränkt, und nimmt so an, dass jeder Charakter durch ein einzelnes Byte direkt vertreten wird.

Non-CSI Codes

Zeichen: Andere C0-Codes außer ESC — allgemein BEL, BAKKALAUREus DER NATURWISSENSCHAFTEN, CR, LF, FF, ETIKETT, VT, also, und SI — können ähnliche oder identische Effekten zu einigen Kontrollfolgen wenn Produktion erzeugen.

ESC N = SS2 ESC O = wählen SS3 — einen einzelnen Charakter von einer der abwechselnden Codierungen aus.

ESC ^ = PREMIERMINISTER,

ESC _ = APC — diese nimmt jeder eine einzelne Schnur des Textes, der durch ST (ESC \) begrenzt ist. Sie werden durch xterm ignoriert.

ESC P = DCS: Gerät-Kontrollschnur,

ESC] = OSC: Betriebssystembefehl — diese sind CSI, aber nicht beschränkt auf Argumente der ganzen Zahl ähnlich. Weil sie oft in vielen Fällen verwendet werden, ist BEL eine annehmbare Alternative zu ST. Z.B, in xterm, kann der Fenstertitel gesetzt werden durch: "OSC0; das ist das Fenster titleBEL"

Zeichen: Spezielle Schlüssel auf der Tastatur, sowie outputting viele xterm CSI drückend, erzeugt DCS oder OSC Folgen, häufig einen CSI, DCS oder OSC Folge.

CSI Codes

Die allgemeine Struktur von den meisten ANSI-Flucht-Folgen ist. Das Endbyte, das durch private Weise-Charaktere und das Schleppen von Zwischenzeichen modifiziert ist, gibt den Befehl an. Die Zahlen sind fakultative Rahmen. Der für weggelassene Rahmen verwendete Verzug-Wert ändert sich mit dem Befehl, aber ist gewöhnlich 1 oder 0. Wenn schleifende Rahmen weggelassen werden, können die schleifenden Strichpunkte auch weggelassen werden.

Das Endbyte ist technisch jeder Charakter in der Reihe 64 bis 126 (Hexe 0x40 zu 0x7e, ASCII zu ~), und kann mit Hauptzwischenbytes in der Reihe 32 bis 47 (Hexe 0x20 zu 0x2f) modifiziert werden.

Der Doppelpunkt (0x3a) ist der einzige Charakter nicht ein Teil der allgemeinen Folge; es wurde für die zukünftige Standardisierung verlassen, so sollte jede Folge, die es enthält, ignoriert werden.

Obwohl vielfache private Weise-Charaktere oder das Schleppen von Zwischengliedern erlaubt werden, gibt es keinen solchen bekannten Gebrauch.

Wenn es irgendwelche privaten Hauptweise-Charaktere gibt, konnte der Hauptkörper der Folge jede Ordnung von Charakteren 0x30 - 0x3f statt einer gut gebildeten Strichpunkt-getrennten Liste von Zahlen theoretisch enthalten, aber alle bekannten Terminals sind nett und verwenden sie gerade als eine Fahne.

Folgen sind auch privat, wenn das Endbyte in der Reihe 112 bis 126 (Hexe 0x70 zu 0x7e, ASCII p zu ~) ist.

Beispiele von privaten Flucht-Codes schließen den DECTCEM ein (Textcursor im DEZ ermöglichen Weise) gezeigt unten.

Es wurde zuerst für die VT-300 Reihe von Videoterminals eingeführt.

Die Existenz einer C0-Kontrolle, DEL (0x7f), oder hohe Charaktere ist unbestimmt. Gewöhnlich werden Durchführungen entweder die Folge annullieren oder die Kontrolle durchführen und dann fortsetzen, die CSI Folge grammatisch zu analysieren.

Farben

Textfarbe wird mit der Folge manipuliert.

Es gibt zwei andere Farbenstandards CSS/HTML Standardfarben und X Fensterfarben, die beide die Farbennamen und vereinigten RGB-Farbenwerte standardisieren, aber der Flucht-Folge-Standard gibt nur die Farbennamen, nicht RGB Werte an. Die Karte unter dem Show-Verzug RGB Anweisungen für einige allgemeine Endprogramme, zusammen mit dem CSS und dem X-Fenster färbt sich für diese Farbennamen.

Die VGA Säule zeigt die typischen Farben an, die verwendet werden, wenn man PCs startet und sie in ihrem klassischen 80×25 Textweise verlässt. Die Farben sind in den EGA/VGA grafischen Weisen verschieden.

Im Juli 2004 haben sich die blauen Farben von xterm, RGB (0.0.205)-> (0.0.238) für den normalen und (0.0.255)-> (92.92.255) für den hellen geändert. Bezüglich 2010 alter xterm Versionen verweilen noch auf vielen Computern dennoch.

Beispiele

— Das klärt den Schirm und auf einigen Geräten, macht den Cursor zum y, x Position 1,1 (obere linke Ecke) ausfindig.

— Das macht Text grün. Auf dem MS-DOS normalerweise würde das Grün dunkles, dummes Grün sein, so könnten Sie Kühn mit der Folge ermöglichen mögen, die es hellgrün, oder verbunden als machen würde. MS-DOS ANSI.SYS verwendet den Kühnen Staat, um den Charakter Hell zu machen; auch der Blinzeln-Staat kann gesetzt werden (über), den Hintergrund in der Hellen Weise zu machen. MS-DOS ANSI.SYS unterstützt SGR Codes 90-97 und 100-107 direkt nicht.

— Das teilt den Schlüssel wiederzu F10, um an die Tastatur zu senden, puffern die Schnur "DIR" und gehen HEREIN, der in der DOS-Befehl-Linie den Inhalt des aktuellen Verzeichnisses zeigen würde. (MS-DOS ANSI.SYS nur) Das ist ein Code des privaten Gebrauches (wie angezeigt, durch den Brief p) mit einer Sondererweiterung, um einen Schnur-geschätzten Parameter einzuschließen. Im Anschluss an den Brief des Standards würde denken, dass die Folge am Brief D endet.

— Das spart die Cursor-Position. Das Verwenden der Folge wird es zur Position wieder herstellen. Sagen Sie, dass die aktuelle Cursor-Position 7 (y) und 10 (x) ist. Die Folge wird jene zwei Zahlen sparen. Jetzt können Sie sich zu einer verschiedenen Cursor-Position, solcher als 20 (y) und 3 (x), mit der Folge bewegen oder. Jetzt, wenn Sie die Folge CSI u verwenden, wird die Cursor-Position zu 7 (y) und 10 (x) zurückkehren. Einige Terminals verlangen die Folgen im DEZ / stattdessen, der weiter unterstützt wird.

Beispiel des Gebrauches in der Schale scripting

ANSI Flucht-Codes werden häufig in UNIX und UNIX ähnlichen Terminals verwendet, um hervorhebende Syntax zur Verfügung zu stellen. Zum Beispiel, auf vereinbaren Terminals, versieht der folgende Listenbefehl Dateinamen und Verzeichnisnamen durch den Typ mit Kennfarben.

ls - färben

Benutzer können Flucht-Codes in ihren Schriften durch das Umfassen von ihnen als ein Teil der Standardproduktion oder des Standardfehlers verwenden. Zum Beispiel verschönert der folgende Sed-Befehl die Produktion des machen Befehls durch das Anzeigen von Linien, die Wörter enthalten, die damit anfangen, "IRREN" "SICH" in, und Wörter, die damit anfangen, "WARNEN" im kühnen (Brief-Fall wird ignoriert).

Die Darstellungen der Codes werden hervorgehoben.

Ungesetzliche und zweideutige Folgen im Gebrauch

  • Die Linux trösten Gebrauch, um die Palette zu ändern, die, wenn hart codiert, in eine Anwendung, andere Terminals hängen kann. Jedoch wird das Befestigen von Linux ignoriert und einen richtigen, ignorable Folge für andere Terminals bilden.
  • Auf der Konsole von Linux erzeugen bestimmte Funktionsschlüssel Folgen der Form. Die CSI Folge sollte auf [enden.
  • Alte Versionen von Terminator erzeugen, wenn F1-F4 mit Modifikatoren gedrückt werden. Das fehlerhafte Verhalten wurde vom ZWERG-Terminal kopiert.
  • xterm antwortet, ob um Cursor-Position gebeten hat, und wenn der F3 Schlüssel mit Modifikatoren gedrückt wird, die im Fall von der Reihe == 1 kollidieren. Das kann durch das Verwenden vermieden werden? privater Modifikator, der in der Antwort widerspiegelt wird.
  • viele Terminals prepend zu jedem Charakter, der mit dem alt Schlüssel unten getippt wird. Das schafft Zweideutigkeit für Großbuchstaben und Symbole [\] ^ _, der C1-Codes bilden würde.
  • Konsole erzeugt, wenn F1-F4 mit Modifikatoren gedrückt werden.

Siehe auch

  • ANSI Kunst
  • Kontrollcharakter
  • Fortgeschrittener Videoattribut-Endmonteur und Wiederschöpfer (AVATAR)

Referenzen

Links


Winkelige Beschleunigung / Jean Hersholt
Impressum & Datenschutz