Realce fixo no tmux

17

Sinto falta do destaque (modo reverso) no console desde que comecei a usar urxvt + tmux como terminal principal. Os destaques foram substituídos por italic font - o que parece ser bem legal no início - mas não consigo encontrar a palavra itálica em milhares não-itálica quando tento pesquisar algo em less .

Isso funciona corretamente enquanto o tipo de terminal está definido como xterm* profile (com, por exemplo, set -g default-terminal "xterm-color" em .tmux.conf ). No entanto, algum atalho não funciona, os aplicativos não podem obter a geometria adequada do terminal, ... neste caso.

    
por andras.tim 19.03.2015 / 06:27

3 respostas

9

Encontrei informações e soluções sobre isso nas páginas do tmux:

Screen's terminfo description lacks italics mode and has standout mode in its place, but using the same escape sequence that urxvt uses for italics. This means applications (like vim) looking for italics will not find it and might turn to reverse in its place, while applications (like less) asking for standout will end up with italics instead of reverse.

[Fix 1] Substituir as entradas do terminfo e obter reverse + italics

(por usuário!)

To make applications aware that tmux supports italics and to use a proper escape sequence for standout, you'll need to create a new terminfo file with modified sgr, smso, rmso, sitm and ritm entries:

$ 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

And tell tmux to use it in ~/.tmux.conf:

set -g default-terminal "screen-it"

If your terminal supports 256 colors, use:

$ screen_terminfo="screen-256color"

instead of "screen". See the FAQ entry about 256 colors support for more info. Also note that tmux will still display reverse video on terminals that do not support italics.

If your urxvt cannot display italics at all, make sure you have an italics capable font enabled, for example, add to ~/.Xdefaults:

urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true

[Fix 2] Basta substituir caracteres de controle em itálico por reversos

Adicione esta sobreposição de terminal a ~ / .tmux.conf :

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'
    
por 19.03.2015 / 06:27
4

Caminho mais rápido:

set -g terminal-overrides "screen.xterm-new"

Funciona sem mais mágica (e ainda atende ao aviso no manual do tmux sobre o tipo de terminal que precisa ser "screen" ou um derivativo dele).

    
por 10.06.2015 / 12:06
1

Eu corro o urxvt no arch linux. A resposta do op não me ajudou. Isso me ajudou:

link

pesquise italic e execute isso; então, coloque isso na configuração do tmux

set -g default-terminal "tmux"

não use "tmux-256color". (tente, suponho, mas não funcionou para mim.)

finalmente, adicione isso ao seu rc (.zshrc, .bashrc, etc):

export TERM="xterm-256color"
    
por 25.05.2017 / 05:21