Frage

vim scheint mehrere seltsame (z. B.undokumentierte) Escape-Sequenzen an das zugrunde liegende Terminal, wenn das Inkpot-Schema verwendet wird.Ich konnte sie keinem VT-100- oder ANSI-Escape-Code zuordnen;Weiß jemand, was diese Sequenzen sind?

^[[3231m
^[[4232m
^[[3130m

Diese Sequenzen werden in einem Terminalemulator, für den ich verantwortlich bin, als ungültige Token angezeigt, und ich würde gerne Unterstützung für diese Sequenzen hinzufügen, wenn ich eine entsprechende Dokumentation dafür finden kann.

Auf den betroffenen Systemen sind folgende terminalbezogene Umgebungsvariablen gesetzt:

TERM=xterm
COLORTERM=

Ich habe keine anderen Einstellungen für diese beiden Variablen ausprobiert.

vim ist Version 7.2, aber ich habe neuere Versionen mit dem gleichen Effekt ausprobiert.

Danke!

War es hilfreich?

Lösung

Unterstützt Ihr Terminal den 88- oder 256-Farben-Modus?Wenn ja, sollten Sie wahrscheinlich einen TERM-Wert wie verwenden xterm-88color oder xterm-256color statt schlicht xterm.

Tintenfass lehnt ausdrücklich die Unterstützung für Terminals ab, die nur 8/16 Farben unterstützen.Von der Spitze des Tintenfass Quelle:

" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256
" colour mode). It won't work in 8/16 colour terminals.

Der Code, der die Syntaxfärbung einrichtet, geht davon aus, dass das Terminal 256 Farben unterstützen muss, wenn es keine 88 Farben unterstützt.Es wird nicht versucht, Fallback-Werte für den Fall von 8 Farben bereitzustellen (z. B.Wann TERM=xterm).Vielleicht wäre es schön, wenn Tintenfass Es wurde eine Fehlermeldung ausgegeben (und die Farbeinstellungen wurden nicht geändert), wenn das Terminal anscheinend nicht über die entsprechende Farbunterstützung verfügte.


Die Steuersequenzen, die Sie sehen, resultieren aus dem Versuch, eine 8-Farben-Terminal-Farbsteuersequenz für eine Farbnummer zu generieren, die außerhalb des akzeptablen Eingabebereichs von 0 bis 7 für diesen Terminaltyp liegt.Diese Sequenzen sind also wahrscheinlich nicht gültig, aber sie sind auch nicht ganz beabsichtigt (entstehen, weil Tintenfass geht von einer 256-Farben-Unterstützung aus, aber die xterm Der Terminfo-Eintrag kennt nur die grundlegende 8-Farben-Unterstützung.

Zum Beispiel, Tintenfass legt die fest Normal Syntax-Vordergrundfarbe auf 79 auf 88-Farben-Terminals;Dies wird für Nicht-88-Farben-Terminals in 231 übersetzt (d. h.für 256-Farben-Terminals, aber auch für Ihre 8-Farben-Terminals xterm).

Wenn Sie versuchen, diese außerhalb des Bereichs liegende Farbnummer mit zu formatieren TERM=xterm, erhalten Sie das Ergebnis ^[[3231m Das hast du gefunden:

% tput -T xterm setaf 231 | od -a
0000000  esc   [   3   2   3   1   m
0000007

(d. h.einfügen 231 zwischen ^[[3 Und m)

Wenn du benutzt xterm-256color, erhalten Sie ein normaler aussehendes Ergebnis:

% tput -T xterm-256color setaf 231 | od -a
0000000  esc   [   3   8   ;   5   ;   2   3   1   m
0000013

(d. h.einfügen 231 zwischen ^[[38;5; Und m)

Ebenso die Normal Syntax 88-Farben-Hintergrundfarbe von 80 wird in einen 256-Farben-Wert von 232 übersetzt und erzeugt den Fehler ^[[4232m Reihenfolge für xterm (würde aber das Vernünftigere hervorbringen ^[[48;5;232m unter xterm-256color).

Andere Tipps

generasacodicetagpre.

sieht viel aus wie eine Farbdefinition fertig / Gone schief:

generasacodicetagpre.

das wäre sowieso nicht viel sinnvoll.

kommt es mit einem bestimmten Wert für $TERM oder für einen beliebigen Wert?Welche VIM-Version?Von welchem terminalen Emulator sprechen wir?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top