После долгих поисков я не могу найти способ заставить gnome-терминал отображать курсивные шрифты. Я использую версию 3.6.2.
В частности, я хотел бы, чтобы vim отображал комментарии курсивом; Я добавил
highlight Comment cterm=italic
в мой .vimrc, но он не работает.
Кто-нибудь знает, можно ли это сделать?
Терминал Gnome действительно поддерживает курсив (по крайней мере, в версии 3.8.4). Можно протестировать терминальную поддержку курсива путем выполнения $ echo -e "\e[3mfoo\e[23m"
. Если Вы видите нечто, распечатанное курсивом, нечто , то терминал поддерживает его.
Тогда необходимо вставить следующее в .vimrc
:
set t_ZH=^[[3m
set t_ZR=^[[23m
Примечание, которое ^[
является отдельным символом и может в режиме вставки энергии быть вставленным путем ввода <ctrl>-v <esc>
.
После этого необходимо сказать энергии выделять курсивом комментарии. Можно быстро протестировать, если это работает путем выполнения :highlight Comment cterm=italic
в энергии, когда файл с некоторыми комментариями открыт. Комментарии должны быть выделены курсивом сразу же.
я нашел вышеупомянутые инструкции относительно reddit ( Курсив в терминальной энергии и tmux), но я не должен был выполнять все шаги, перечисленные там. Мой ответ является дистиллированной версией инструкций, которые работали на меня.
Нет. Я читал man 5 terminfo
для обнаружения то, чем терминальными Escape-последовательностями (что Вы отправляете терминалу для порождения поведения) назвали контакт с курсивом:
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
Затем я использовал infocmp
для дампа каждого терминального описания, таким образом, я видел, какие терминалы поддерживали курсив:
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
Так, эти три терминальных типа (rxvt-unicode-256color, opus3n1 +, ирисовый цвет) поддерживают курсив. Другие не делают.
, Так как я не мог найти терминальное определение для "терминала гнома" (см. ls /usr/share/terminfo/g/
, я искал курсив всего. Попробуйте infocmp $TERM
для наблюдения, какие возможности терминал поддерживает. Читайте man tput
, чтобы видеть, как испустить управляющие последовательности.