Чи можу я отримати курсив у gnome-терміналі?


13

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

Зокрема, я хотів би, щоб vim відображав коментарі курсивом; Я додав

highlight Comment cterm=italic

на мій .vimrc, але це не працює.

Хтось знає, чи можна це зробити?


Чи допомагає це питання? Він пропонує використовувати послідовність аварійного відхилення ANSI: \e[3m Термінал, що підтримує курси коду відхилення ANSI?
Nattgew

Відповіді:


14

Термінал Gnome підтримує курсив (принаймні у версії 3.8.4). Ви можете перевірити підтримку терміналу курсивом, виконавши $ echo -e "\e[3mfoo\e[23m". Якщо ви бачите foo, надрукований курсивом, foo , тоді термінал підтримує його.

Тоді вам потрібно вставити наступне .vimrc:

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

Зауважте, що ^[це один символ, і його можна в режимі вставки vim вставити, набравши текст <ctrl>-v <esc>.

Після цього ви повинні сказати vim, щоб він написав курсив. Ви можете швидко перевірити, чи працює він, виконавши :highlight Comment cterm=italicvim, коли файл з деякими коментарями відкритий. Коментарі мають бути одразу націлені курсивом.

Я знайшов вищевказані інструкції щодо reddit ( курсив у терміналі vim та tmux ), але мені не довелося виконувати всі кроки, перелічені там. Моя відповідь - дистильована версія інструкцій, яка працювала на мене.


Дякую! Встановлені команди - це те, чого мені не вистачало в моєму vimrc. Тепер мої коментарі у терміналі vim - курсивом, саме так, як я їх люблю.
Хронос

Не пропустіть цю примітку про ^ [або вас довго плутатимуть!
Джеремі Вест

1
gnome terminal 3.6.2 також підтримує курсив! нарешті, у мене курсив у розмітці, дякую!
Айрат

3

Ні. Я читав, 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 +, колір райдужки) підтримують курсив. Інші - ні.

Оскільки я не зміг знайти визначення терміналу для "gnome-terminal" (див. ls /usr/share/terminfo/g/, Я шукав курсив у всіх. Спробуйте infocmp $TERMдізнатися, які можливості підтримує ваш термінал. Прочитайте, man tputщоб дізнатися, як випромінювати послідовності управління.


Дякую за вашу відповідь та вибачте за те, що не визнали її раніше. Я перейшов на використання Urxvt; це дуже налаштовується, і, доклавши трохи зусиль, я зміг зробити так, щоб він виглядав майже так само, як і моя стара гнома-термінальна установка.
Хронос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.