在 tmux 中打开 vim,我有粗体字体

hol*_*lms 5 fonts vim xterm dwm

所以我遇到了一个问题,在 tmux 中打开 vim 时,所有字体都变为粗体。我的配置我有:设置 t_Co=256。即使将其设置为 8,某些关键字上的某些粗体也会消失。我正在使用 Freebsd 和使用 uxterm 的 dwm。我的 vim 颜色主题是“宇航员”。任何线索为什么会发生这种情况以及如何解决它?

附加信息:

  • 它只发生在 tmux
  • 在 xterm 中没问题
  • tmux 外的 echo $TERM 是“rxvt”
  • tmux 中的 echo $TERM 是“屏幕”

小智 1

我遇到了类似的问题,斜体和反向视频被切换了。

“Screen 的 terminfo 描述缺乏斜体模式,并在其位置具有突出模式,但使用与 urxvt 用于斜体相同的转义序列。这意味着寻找斜体的应用程序(如 vim)将找不到它,并且可能会在其位置转向反转,而要求突出的应用程序(例如 less)最终将以斜体而不是反向显示。为了让应用程序知道 tmux 支持斜体并使用正确的转义序列来突出显示,您需要使用修改后的 sgr 创建一个新的 terminfo 文件, 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
Run Code Online (Sandbox Code Playgroud)

并告诉 tmux 在 ~/.tmux.conf 中使用它:

set -g default-terminal "screen-it"
Run Code Online (Sandbox Code Playgroud)

如果您的终端支持 256 色,请使用:

$ screen_terminfo="screen-256color"
Run Code Online (Sandbox Code Playgroud)

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

本常见问题解答结束 http://tmux.cvs.sourceforge.net/viewvc/tmux/tmux/FAQ