Czy mogę uzyskać kursywę w gnome-terminal?


13

Po wielu poszukiwaniach nie mogę znaleźć sposobu, aby uzyskać gnome-terminal do wyświetlania czcionek pochylonych. Używam wersji 3.6.2.

W szczególności chciałbym, aby vim wyświetlał komentarze kursywą; dodałem

highlight Comment cterm=italic

do mojego .vimrc, ale to nie działa.

Czy ktoś wie, czy można to zrobić?


Czy to pytanie pomaga? Sugeruje użycie sekwencji ucieczki ANSI: \e[3m Terminal obsługujący kod ucieczki ANSI?
Nattgew

Odpowiedzi:


14

Terminal Gnome obsługuje kursywę (przynajmniej w wersji 3.8.4). Możesz przetestować obsługę terminali kursywą, wykonując $ echo -e "\e[3mfoo\e[23m". Jeśli widzisz foo wydrukowane kursywą, foo , terminal obsługuje to.

Następnie musisz wstawić następujące elementy .vimrc:

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

Zauważ, że ^[jest to pojedynczy znak i można go wstawiać w trybie wstawiania vim, pisząc <ctrl>-v <esc>.

Następnie musisz powiedzieć vimowi, aby pochylił komentarze. Możesz szybko sprawdzić, czy działa, wykonując :highlight Comment cterm=italicvim, gdy plik z niektórymi komentarzami jest otwarty. Komentarze powinny być od razu zaznaczone kursywą.

Znalazłem powyższe instrukcje dotyczące reddit ( kursywa w terminalu vim i tmux ), ale nie musiałem wykonywać wszystkich wymienionych tam kroków. Moja odpowiedź to destylowana wersja instrukcji, która zadziałała dla mnie.


Dziękuję Ci! Zestaw poleceń był tym, czego brakowało w moim vimrc. Teraz moje komentarze w terminalu vim są zaznaczone kursywą, tak jak je lubię.
Chronos

Nie przegap tej uwagi na temat ^ [w przeciwnym razie będziesz zdezorientowany przez długi czas!
Jeremy West,

1
Terminal gnome 3.6.2 obsługuje również kursywę! wreszcie mam kursywę w przecenianiu, dzięki!
Ayrat,

3

Nie. Przeczytałem, man 5 terminfoaby dowiedzieć się, jak nazywane są końcowe sekwencje ESCape (to, co wysyłasz do terminala w celu spowodowania zachowania) dotyczące kursywy:

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  

Następnie infocmpzrzuciłem opis każdego terminala, aby zobaczyć, które terminale obsługują kursywę:

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

Te trzy typy terminali (rxvt-unicode-256color, opus3n1 +, iris-color) obsługują kursywę. Inni nie.

Ponieważ nie mogłem znaleźć definicji terminala dla „gnome-terminal” (patrz ls /usr/share/terminfo/g/, w ogóle szukałem kursywy. Spróbuj infocmp $TERMzobaczyć, jakie możliwości obsługuje twój terminal. Przeczytaj, man tputjak emitować sekwencje kontrolne.


Dziękuję za odpowiedź i przepraszam, że nie uznałem jej wcześniej. Zmieniłem na używanie Urxvt; jest wysoce konfigurowalny i przy odrobinie wysiłku udało mi się sprawić, że będzie wyglądał prawie dokładnie tak, jak moja stara konfiguracja terminalu gnomów.
Chronos
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.