Kann ich Kursivschrift im Gnome-Terminal erhalten?

13

Nach langem Suchen kann ich kein Gnome-Terminal finden, um kursive Schriftarten anzuzeigen. Ich verwende Version 3.6.2.

Insbesondere möchte ich, dass vim Kommentare in Kursivschrift anzeigt; Ich habe hinzugefügt

highlight Comment cterm=italic

zu meinem .vimrc aber es funktioniert nicht.

Weiß jemand, ob dies getan werden kann?

Chronos
quelle
Hilft diese Frage? Es wird empfohlen, die ANSI-Escape-Sequenz zu verwenden: \e[3m Terminal, das den kursiven ANSI-Escape-Code unterstützt?
Nattgew

Antworten:

14

Das Gnome-Terminal unterstützt Kursivschrift (zumindest in Version 3.8.4). Sie können die Terminalunterstützung für Kursivschrift testen, indem Sie ausführen $ echo -e "\e[3mfoo\e[23m". Wenn foo kursiv gedruckt angezeigt wird , wird dies vom Terminal unterstützt.

Dann müssen Sie folgendes einfügen .vimrc:

set t_ZH=^[[3m
set t_ZR=^[[23m

Beachten Sie, dass dies ^[ein einzelnes Zeichen ist und im VIM-Einfügemodus durch Eingabe eingefügt werden kann <ctrl>-v <esc>.

Danach müssen Sie vim anweisen, Kommentare kursiv zu schreiben. Sie können schnell testen, ob es funktioniert, indem Sie es :highlight Comment cterm=italicin vim ausführen, wenn eine Datei mit einigen Kommentaren geöffnet ist. Kommentare sollten sofort kursiv gedruckt werden.

Ich habe die obigen Anweisungen für reddit gefunden ( Kursivschrift in Terminal VIM und TMUX ), musste aber nicht alle dort aufgeführten Schritte ausführen . Meine Antwort ist die destillierte Version der Anweisungen, die für mich gearbeitet haben.

Kranjski Janez
quelle
Vielen Dank! Die gesetzten Befehle waren das, was mir in meinem vimrc fehlte. Jetzt sind meine Kommentare in Terminal Vim kursiv gedruckt, so wie ich sie mag.
Chronos
Verpassen Sie nicht diesen Hinweis zu ^ [, sonst werden Sie lange verwirrt sein!
Jeremy West
1
gnome terminal 3.6.2 unterstützt auch kursiv! Endlich habe ich Kursivschrift im Markdown, danke!
Ayrat
3

Nein. Ich habe gelesen man 5 terminfo, um herauszufinden, wie die ESCape-Sequenzen des Terminals (was Sie dem Terminal senden, um das Verhalten zu verursachen) lauten, die sich mit Kursivschrift befassen:

man 5 terminfo | egrep 'italics|Cap-|Code'|head -n 10| tail -n 4
               Variable                   Cap-            TCap               Description  
                String                    name            Code  
       enter_italics_mode                 sitm            ZH             Enter italic mode  
       exit_italics_mode                  ritm            ZR             End italic mode  

Dann habe ich infocmpjede Terminalbeschreibung ausgegeben, um zu sehen, welche Terminals Kursivschrift unterstützen:

for i in $( find /usr/share/terminfo -type f ) ; do 
    j=${i##*/}; hdr="$( infocmp $j | head -n 1)";  
    infocmp $j | egrep -q 'sitm|ZH' 
    if [ $? = 0 ] ; then echo $hdr; fi; 
done
# Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt-unicode-256color
# Reconstructed via infocmp from file: /usr/share/terminfo/o/opus3n1+
# Reconstructed via infocmp from file: /usr/share/terminfo/i/iris-color

Diese drei Terminaltypen (rxvt-unicode-256color, opus3n1 +, iris-color) unterstützen Kursivschrift. Andere nicht.

Da ich keine Terminaldefinition für "gnome-terminal" gefunden habe (siehe ls /usr/share/terminfo/g/, ich habe insgesamt nach Kursivschrift gesucht. Versuchen Sie herauszufinden infocmp $TERM, welche Funktionen Ihr Terminal unterstützt. Lesen Sie man tput, wie Sie Steuersequenzen ausgeben.

Waltinator
quelle
Vielen Dank für Ihre Antwort und entschuldigen Sie, dass Sie dies nicht früher zur Kenntnis genommen haben. Ich habe zu Urxvt gewechselt. Es ist sehr anpassbar und mit ein wenig Mühe konnte ich es fast genauso aussehen lassen wie mein altes Gnome-Terminal-Setup.
Chronos