¿Puedo obtener cursiva en gnome-terminal?

13

Después de mucha búsqueda, no puedo encontrar una manera de hacer que gnome-terminal muestre las fuentes en cursiva. Estoy ejecutando la versión 3.6.2.

Específicamente, me gustaría que vim muestre comentarios en cursiva; he añadido

highlight Comment cterm=italic

a mi .vimrc pero no funciona.

¿Alguien sabe si esto se puede hacer?

Chronos
fuente
¿Ayuda esta pregunta? Sugiere usar la secuencia de escape ANSI: ¿ \e[3m Terminal que admite código de escape en cursiva ANSI?
Nattgew

Respuestas:

14

El terminal Gnome admite cursiva (al menos en la versión 3.8.4). Puede probar el soporte del terminal para cursiva ejecutando $ echo -e "\e[3mfoo\e[23m". Si ve foo impreso en cursiva, foo , entonces el terminal lo admite.

Luego debe insertar lo siguiente en .vimrc:

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

Tenga en cuenta que ^[es un solo carácter y puede insertarse en modo de inserción vim escribiendo <ctrl>-v <esc>.

Después de eso, debe decirle a vim que ponga en cursiva los comentarios. Puede probar rápidamente si funciona ejecutando :highlight Comment cterm=italicen vim cuando el archivo con algunos comentarios está abierto. Los comentarios deben aparecer en cursiva de inmediato.

Encontré las instrucciones anteriores en reddit ( cursiva en la terminal vim y tmux ), pero no tuve que seguir todos los pasos enumerados allí. Mi respuesta es la versión destilada de instrucciones que funcionó para mí.

Kranjski Janez
fuente
¡Gracias! Los comandos establecidos eran lo que me faltaba en mi vimrc. Ahora mis comentarios en terminal vim están en cursiva, tal como me gustan.
Chronos
¡No te pierdas esa Nota sobre ^ [o estarás confundido por mucho tiempo!
Jeremy West
1
¡El terminal 3.6.2 de gnome también admite cursiva! Finalmente, tengo cursiva en markdown, ¡gracias!
Ayrat
3

No. Leí man 5 terminfopara descubrir cómo se llamaban las cursivas de terminal ESCape (lo que le envías al terminal para causar el comportamiento) con cursiva:

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  

Luego, solía infocmpvolcar la descripción de cada terminal para poder ver qué terminales admitían cursiva:

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

Entonces, estos tres tipos de terminal (rxvt-unicode-256color, opus3n1 +, iris-color) admiten cursiva. Otros no lo hacen.

Como no pude encontrar una definición de terminal para "gnome-terminal" (vea ls /usr/share/terminfo/g/, busqué en cursiva todos. Intente infocmp $TERMver qué capacidades admite su terminal. Lea man tputpara ver cómo emitir secuencias de control.

Waltinator
fuente
Gracias por su respuesta y disculpas por no haberlo reconocido antes. He cambiado a usar Urxvt; es altamente personalizable, y con un poco de esfuerzo pude hacer que se viera casi exactamente como mi antigua configuración de terminal de gnomo.
Chronos