그놈 터미널에서 이탤릭체를 사용할 수 있습니까? 표시하는 방법을 찾을 수 없습니다.

많은 검색 후 gnome-terminal이 기울임 꼴 글꼴을 표시하는 방법을 찾을 수 없습니다. 버전 3.6.2를 실행 중입니다.

특히 vim이 기울임 꼴로 주석을 표시하고 싶습니다. 추가했습니다

highlight Comment cterm=italic

내 .vimrc에 있지만 작동하지 않습니다.

이것이 가능한지 아는 사람이 있습니까?



답변

그놈 터미널은 이탤릭체를 지원합니다 (최소 버전 3.8.4 이상). 를 실행하여 기울임 꼴에 대한 터미널 지원을 테스트 할 수 있습니다 $ echo -e "\e[3mfoo\e[23m". 당신은 foo는 이탤릭체로, 인쇄를 참조하면 foo는 , 다음 터미널 지원을.

그런 다음에 다음을 삽입해야합니다 .vimrc.

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

참고 ^[정력 삽입 모드에서 하나의 문자 수입니다 입력하여 삽입 <ctrl>-v <esc>.

그런 다음 vim에 주석을 기울 이도록 지시해야합니다. :highlight Comment cterm=italic주석이 포함 된 파일이 열려있을 때 vim에서 실행 하여 작동하는지 빠르게 테스트 할 수 있습니다 . 의견은 즉시 이탤릭체로 표시해야합니다.

reddit ( 터미널 vim 및 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 +, iris-color)은 이탤릭체를 지원합니다. 다른 사람들은 그렇지 않습니다.

“gnome-terminal”에 대한 터미널 정의를 찾을 수 없기 때문에 ( ls /usr/share/terminfo/g/모두 이탤릭체를 찾았습니다. infocmp $TERM터미널이 어떤 기능을 지원 man tput하는지 확인하십시오. 제어 시퀀스를 생성하는 방법을 읽으십시오 .


답변