Posso ottenere il corsivo in gnome-terminal?


13

Dopo molte ricerche non riesco a trovare un modo per ottenere gnome-terminal per visualizzare i caratteri in corsivo. Sto eseguendo la versione 3.6.2.

In particolare, vorrei che Vim mostrasse i commenti in corsivo; ho aggiunto

highlight Comment cterm=italic

al mio .vimrc ma non funziona.

Qualcuno sa se questo può essere fatto?


Questa domanda aiuta? Suggerisce di usare la sequenza di escape ANSI: \e[3m Terminale che supporta il codice di escape italico ANSI?
Nattgew,

Risposte:


14

Il terminale Gnome supporta il corsivo (almeno nella versione 3.8.4). È possibile testare il supporto terminale per il corsivo eseguendolo $ echo -e "\e[3mfoo\e[23m". Se vedi pippo stampato in corsivo, pippo , allora il terminale lo supporta.

Quindi devi inserire quanto segue in .vimrc:

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

Si noti che ^[è un singolo carattere e può essere inserito in modalità di inserimento vim digitando <ctrl>-v <esc>.

Dopodiché devi dire a Vim di scrivere in corsivo i commenti. Puoi verificare rapidamente se funziona eseguendo :highlight Comment cterm=italicin vim quando il file con alcuni commenti è aperto. I commenti dovrebbero essere in corsivo immediatamente.

Ho trovato le istruzioni sopra su reddit ( corsivo in terminal vim e tmux ), ma non ho dovuto seguire tutti i passaggi elencati lì. La mia risposta è la versione distillata delle istruzioni che ha funzionato per me.


Grazie! I comandi set erano ciò che mi mancava nel mio vimrc. Ora i miei commenti in Terminal VIM sono in corsivo, proprio come mi piacciono.
Chronos,

Non perdere questa nota su ^ [o rimarrai confuso per molto tempo!
Jeremy West,

1
gnome terminal 3.6.2 supporta anche il corsivo! finalmente ho il corsivo in ribasso, grazie!
Ayrat,

3

No. Ho letto man 5 terminfoper scoprire come venivano chiamate le sequenze ESCape del terminale (cosa si invia al terminale per causare il comportamento) che si occupano di corsivo:

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  

Quindi, ho usato infocmpper scaricare ogni descrizione del terminale in modo da poter vedere quali terminali supportavano il corsivo:

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

Quindi, questi tre tipi di terminali (rxvt-unicode-256color, opus3n1 +, iris-color) supportano il corsivo. Altri no.

Dato che non sono riuscito a trovare una definizione terminale per "gnome-terminal" (vedi ls /usr/share/terminfo/g/, ho cercato in tutto il corsivo. Prova infocmp $TERMa vedere quali funzionalità supporta il tuo terminale. Leggi man tputper vedere come emettere sequenze di controllo.


Grazie per la tua risposta e mi scuso per non averlo riconosciuto prima. Sono passato all'utilizzo di Urxvt; è altamente personalizzabile e con un po 'di sforzo sono stato in grado di farlo sembrare quasi esattamente come il mio vecchio setup gnome-terminal.
Chronos,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.