Puis-je obtenir des italiques dans gnome-terminal?

13

Après beaucoup de recherches, je ne trouve pas de moyen pour que gnome-terminal affiche les polices italiques. J'utilise la version 3.6.2.

Plus précisément, j'aimerais que vim affiche les commentaires en italique; J'ai ajouté

highlight Comment cterm=italic

à mon .vimrc mais cela ne fonctionne pas.

Est-ce que quelqu'un sait si cela peut être fait?

Chronos
la source
Cette question vous aide-t-elle? Il suggère d'utiliser la séquence d'échappement ANSI: \e[3m Terminal qui prend en charge le code d'échappement italique ANSI?
Nattgew

Réponses:

14

Le terminal Gnome prend en charge l'italique (au moins dans la version 3.8.4). Vous pouvez tester la prise en charge des terminaux pour l'italique en exécutant $ echo -e "\e[3mfoo\e[23m". Si vous voyez foo imprimé en italique, foo , alors le terminal le prend en charge.

Ensuite, vous devez insérer ce qui suit dans .vimrc:

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

Notez qu'il ^[s'agit d'un seul caractère qui peut être inséré en mode d'insertion vim en tapant <ctrl>-v <esc>.

Après cela, vous devez dire à vim de mettre les commentaires en italique. Vous pouvez rapidement tester si cela fonctionne en exécutant :highlight Comment cterm=italicdans vim lorsque le fichier avec certains commentaires est ouvert. Les commentaires doivent être immédiatement en italique.

J'ai trouvé les instructions ci-dessus sur reddit ( italique dans le terminal vim et tmux ), mais je n'ai pas eu à suivre toutes les étapes répertoriées ici. Ma réponse est la version distillée des instructions qui ont fonctionné pour moi.

Kranjski Janez
la source
Je vous remercie! Les commandes définies étaient ce qui me manquait dans mon vimrc. Maintenant, mes commentaires dans le terminal vim sont en italique, comme je les aime.
Chronos
Ne manquez pas cette note sur ^ [ou vous serez confus pendant longtemps!
Jeremy West
1
le terminal 3.6.2 de gnome prend également en charge l'italique! enfin, j'ai des italiques dans la démarque, merci!
Ayrat
3

Non. J'ai lu man 5 terminfopour savoir comment les séquences ESCape du terminal (ce que vous envoyez au terminal pour provoquer le comportement) traitant de l'italique s'appelaient:

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  

Ensuite, j'avais l'habitude infocmpde vider chaque description de terminal afin que je puisse voir quels terminaux supportaient l'italique:

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

Ainsi, ces trois types de terminaux (rxvt-unicode-256color, opus3n1 +, iris-color) prennent en charge l'italique. D'autres ne le font pas.

Étant donné que je n'ai pas pu trouver de définition de terminal pour "gnome-terminal" (voir ls /usr/share/terminfo/g/, j'ai cherché des italiques en tout. Essayez infocmp $TERMde voir quelles capacités votre terminal prend en charge. Lisez man tputpour voir comment émettre des séquences de contrôle.

waltinator
la source
Merci pour votre réponse et excuses de ne pas l'avoir reconnu plus tôt. Je suis passé à utiliser Urxvt; il est hautement personnalisable, et avec un peu d'effort, j'ai pu le faire ressembler presque exactement à mon ancienne configuration de gnome-terminal.
Chronos