В описании terminfo экрана отсутствует режим курсива, на его месте стоит режим ожидания, но используется та же escape-последовательность, что и urxvt
использует для курсива. Это означает, что приложения (как vim
) поиск курсива не найдет его и может повернуть вспять на своем месте, в то время как приложения (например, меньше), запрашивающие выделение, в итоге получат курсив вместо обратного.
Чтобы приложения знали, что tmux
поддерживает курсив и использовать правильную escape-последовательность для выдающегося, вам нужно будет создать новый TERMINFO файл с измененным sgr
, smso
, rmso
, sitm
а также ritm
записей:
$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen"
$ infocmp "$screen_terminfo" | sed \
-e 's/^screen[^|]*|[^,]*,/screen-it|screen with italics support,/' \
-e 's/%?%p1%t;3%/%?%p1%t;7%/' \
-e 's/smso=[^,]*,/smso=\\E[7m,/' \
-e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
-e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo
И скажи tmux использовать его в ~ / .Tmux.conf :
set -g default-terminal "screen-it"
Если ваш терминал поддерживает 256 цветов, используйте:
$ screen_terminfo="screen-256color"
вместо «экрана». Смотрите раздел FAQ о поддержке 256 цветов для получения дополнительной информации. Также обратите внимание, что tmux по-прежнему будет отображать обратное видео на терминалах, которые не поддерживают курсив.
Если твой urxvt
курсив вообще не отображается, убедитесь, что у вас включен шрифт, поддерживающий курсив, например, добавьте в ~ / .Xdefaults :
urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true