修复了 tmux 中的突出显示问题

修复了 tmux 中的突出显示问题

自从我开始使用以来,我很怀念控制台上的高亮显示(反向模式)乌尔希+tmux作为主终端。突出显示部分已替换为斜体字体- 乍一看很酷 -但是,当我尝试在 中搜索某些内容时,我无法在数千个非斜体单词中找到一个斜体单词less

当终端类型设置为配置文件时xterm*(例如set -g default-terminal "xterm-color".tmux.conf)。但是,在这种情况下,某些快捷方式无法工作,应用程序无法获取正确的终端几何形状,...

答案1

我在 tmux 的页面上找到了有关它的信息和解决方案:

Screen 的 terminfo 描述缺少斜体模式,而代之以 standout 模式,但使用urxvt与斜体相同的转义序列。这意味着vim寻找斜体的应用程序(如 )将找不到它,并可能改为反向,而要求 standout 的应用程序(如 less)最终将使用斜体而不是反向。

[修复 1] 替换 terminfo 条目并获取反向 + 斜体

(每位用户!)

为了让应用程序意识到tmux支持斜体并使用适当的转义序列来突出显示,您需要创建一个新的术语信息修改了sgrsmsormso和条目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"

而不是“屏幕”。有关详细信息,请参阅有关 256 色支持的常见问题解答条目。另请注意,tmux 仍会在不支持斜体的终端上显示反向视频。

如果你urxvt根本无法显示斜体,请确保你启用了斜体字体,例如,添加到~/.Xdefaults

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

[修复 2] 只需将斜体控制字符替换为反向

将此终端覆盖添加到〜/ .tmux.conf

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'

答案2

我在 arch linux 中运行 urxvt。楼主的回答对我没有帮助。这个对我有帮助:

https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383


搜索italic并运行;然后将其放入 tmux 配置中

set -g default-terminal "tmux"

不要使用“tmux-256color”。(我想试试,但对我来说没用。)


最后,将其添加到您的 rc(.zshrc、.bashrc 等):

export TERM="xterm-256color"

答案3

更快捷的方式:

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

无需任何进一步的魔法即可工作(并且仍然注意 tmux 手册中关于终端类型需要为“屏幕”或其衍生类型的警告)。

相关内容