15

After a lot of searching I cannot find a way to get gnome-terminal to display italic fonts. I'm running version 3.6.2.

Specifically I would like vim to display comments in italics; I've added

highlight Comment cterm=italic

to my .vimrc but it doesn't work.

Does anyone know if this can be done?

1

2 Answers 2

15

Gnome terminal does support italics (at least in version 3.8.4). You can test terminal support for italics by executing $ echo -e "\e[3mfoo\e[23m". If you see foo printed in italics, foo, then terminal supports it.

Then you have to insert the following in .vimrc:

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

Note that ^[ is a single character and can in vim insert mode be inserted by typing <ctrl>-v <esc>.

After that you have to tell vim to italicize comments. You can quickly test if it works by executing :highlight Comment cterm=italic in vim when file with some comments is open. Comments should get italicized right away.

I found the above instructions on reddit (Italics in terminal vim and tmux), but I didn't have to follow all the steps listed there. My answer is the distilled version of instructions that worked for me.

3
  • Thank you! The set commands were what I was missing in my vimrc. Now my comments in terminal vim are italicized, just the way I like 'em.
    – Chronos
    Aug 23, 2014 at 1:48
  • Don't miss that Note about ^[ or you'll be confused for a long time! Mar 6, 2015 at 8:06
  • 1
    gnome terminal 3.6.2 does also support italic! finally, i have italics in markdown, thanks!
    – Ayrat
    Nov 7, 2015 at 11:55
4

No. I read man 5 terminfo to find out what the terminal ESCape sequences (what you send the terminal to cause the behavior) dealing with italics were called:

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  

Then, I used infocmp to dump each terminal description so I could see which terminals supported italics:

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

So, these three terminal-types (rxvt-unicode-256color, opus3n1+, iris-color) support italics. Others do not.

Since I could not find a terminal definition for "gnome-terminal" (see ls /usr/share/terminfo/g/, I looked for italics in all. Try infocmp $TERM to see what capabilities your terminal supports. Read man tput to see how to emit control sequences.

1
  • Thank you for your answer, and apologies for not acknowledging it sooner. I have switched to using Urxvt; it is highly customizable, and with a bit of effort I was able to make it look almost exactly like my old gnome-terminal set-up.
    – Chronos
    Aug 1, 2014 at 13:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .