Могу ли я получить курсив в gnome-терминал?

После долгих поисков я не могу найти способ заставить gnome-терминал отображать курсивные шрифты. Я использую версию 3.6.2.

В частности, я хотел бы, чтобы vim отображал комментарии курсивом; Я добавил

highlight Comment cterm=italic

в мой .vimrc, но он не работает.

Кто-нибудь знает, можно ли это сделать?

13
задан 7 July 2014 в 10:09

2 ответа

Терминал 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), но я не должен был выполнять все шаги, перечисленные там. Мой ответ является дистиллированной версией инструкций, которые работали на меня.

13
ответ дан 7 July 2014 в 10:09

Нет. Я читал 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, чтобы видеть, как испустить управляющие последовательности.

3
ответ дан 7 July 2014 в 10:09

Другие вопросы по тегам:

Похожие вопросы: