Posso obter itálico no gnome-terminal?

13

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

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

highlight Comment cterm=italic

para o meu .vimrc, mas não funciona.

Alguém sabe se isso pode ser feito?

Chronos
fonte
Esta pergunta ajuda? Ele sugere o uso da seqüência de escape ANSI: \e[3m Terminal que suporta código de escape itálico ANSI?
Nattgew 9/07

Respostas:

14

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

Então você deve inserir o seguinte em .vimrc:

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

Observe que ^[é um caractere único e pode ser inserido no modo de 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=italicno vim quando o arquivo com alguns comentários estiver aberto. Os comentários devem ficar em itálico imediatamente.

Encontrei as instruções acima no reddit ( itálico no terminal vim e tmux ), mas não precisei seguir todas as etapas listadas lá. Minha resposta é a versão destilada de instruções que funcionaram para mim.

Kranjski Janez
fonte
Obrigado! Os comandos set eram o que estava faltando no meu vimrc. Agora meus comentários no terminal vim estão em itálico, do jeito que eu gosto.
Chronos
Não perca essa nota sobre ^ [ou você ficará confuso por um longo tempo!
Jeremy West
1
O terminal gnome 3.6.2 também suporta itálico! finalmente, tenho itálico na remarcação, obrigado!
Ayrat 7/11
3

Não. Eu li man 5 terminfopara descobrir como as seqüências ESCape do terminal (o que você envia ao terminal para causar o comportamento) relacionadas ao itálico foram chamadas:

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, eu infocmpdespejava cada descrição de terminal para poder ver quais terminais suportavam 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) suportam itálico. Outros não fazem.

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

waltinator
fonte
Agradecemos a sua resposta e pedimos desculpas por não a ter reconhecido antes. Eu mudei para usar o Urxvt; é altamente personalizável e, com um pouco de esforço, consegui fazer com que parecesse quase exatamente com a minha antiga configuração de terminal gnomo.
Chronos