Après de nombreuses recherches, je ne trouve pas le moyen de faire afficher par gnome-terminal 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 ça ne marche pas.
Est-ce que quelqu'un sait si cela peut être fait?
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 en italique en exécutant $ echo -e "\e[3mfoo\e[23m"
. Si vous voyez foo en italique, foo , 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 que ^[
est un caractère unique et peut être inséré en mode insertion vim en tapant <ctrl>-v <esc>
.
Après cela, vous devez dire à vim de mettre en italique les commentaires. Vous pouvez rapidement vérifier si cela fonctionne en exécutant :highlight Comment cterm=italic
dans vim lorsque le fichier avec certains commentaires est ouvert. Les commentaires doivent être en italique immédiatement.
J'ai trouvé les instructions ci-dessus sur reddit ( Italique dans les terminaux vim et tmux ), mais je n'ai pas eu à suivre toutes les étapes indiquées ici. Ma réponse est la version distillée des instructions qui a fonctionné pour moi.
Non, j'ai lu man 5 terminfo
pour savoir comment s'appelaient les séquences ESCape du terminal (ce que vous envoyez au terminal pour provoquer le comportement) et traitant de l'italique:
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'ai utilisé infocmp
pour vider chaque description de terminal afin de voir quels terminaux prenaient en 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 ne trouvais pas de définition de terminal pour "gnome-terminal" (voir ls /usr/share/terminfo/g/
, j'ai cherché l'italique en tout. Essayez infocmp $TERM
pour voir quelles fonctionnalités votre terminal prend en charge. Lisez man tput
pour voir comment émettre des séquences de contrôle.