Posso obter itálico no gnome-terminal?

13

Depois de muita pesquisa, não consigo encontrar uma maneira de obter o gnome-terminal para exibir fontes em itálico. Estou executando a versão 3.6.2.

Especificamente, gostaria que o vim exibisse comentários em itálico; Eu adicionei

highlight Comment cterm=italic

para o meu .vimrc mas não funciona.

Alguém sabe se isso pode ser feito?

    
por Chronos 07.07.2014 / 08:09

2 respostas

13

O terminal Gnome suporta itálico (pelo menos na versão 3.8.4). Você pode testar o suporte do terminal para itálico executando $ echo -e "\e[3mfoo\e[23m" . Se você ver foo impresso em itálico, foo , então o terminal o suporta.

Então você tem que inserir o seguinte em .vimrc :

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

Observe que ^[ é um único caractere e pode ser inserido no modo inserção do vim digitando <ctrl>-v <esc> .

Depois disso, você precisa dizer ao vim para colocar em itálico os comentários. Você pode testar rapidamente se funciona executando :highlight Comment cterm=italic no vim quando o arquivo com alguns comentários estiver aberto. Os comentários devem ficar em itálico imediatamente.

Eu encontrei as instruções acima no reddit ( Itálico no terminal vim e tmux ), mas eu não tive que seguir todos os passos listados lá. Minha resposta é a versão destilada de instruções que funcionaram para mim.

    
por Miha Marolt 22.08.2014 / 09:44
3

Não. Eu li man 5 terminfo para descobrir o que as seqüências ESCape terminal (o que você envia o terminal para causar o comportamento) lidar com itálicos foram chamados:

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  

Em seguida, usei infocmp para despejar cada descrição do terminal para ver quais terminais tinham suporte em itálico:

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

Portanto, esses três tipos de terminal (rxvt-unicode-256color, opus3n1 +, iris-color) oferecem suporte a itálico. Outros não.

Como não consegui encontrar uma definição de terminal para "gnome-terminal" (consulte ls /usr/share/terminfo/g/ , procurei por itálico em tudo. Tente infocmp $TERM para ver quais recursos seu terminal suporta. Leia man tput para ver como emitir seqüências de controle.

    
por waltinator 15.07.2014 / 19:13