我正在使用的终端是白蚁,它非常好,但是我在使用 tmux 时遇到了 vim 颜色方案和终端本身中的一些颜色的问题。其发生过程如下:
正如您在屏幕截图中看到的,当我使用 tmux 打开 nvim 或 vim 时,左侧的情况下,颜色方案会发生更改,我测试的所有颜色方案都会发生这种情况(大约 15 或 20)。我观察到,当我输入 termite 后立即执行命令时TERM=xterm-256color tmux
,nvim/vim(我模拟链接了我的 .vimrc,因此它与 init.vim 相同)颜色方案就像一个魅力!我正在使用 i3-gaps,所以,我决定设置绑定,$mod+返回以这种方式打开白蚁:
bindsym $mod+Return exec termite -e 'TERM=xterm-256color tmux'
它应该可以工作,但是当我按下按键时,屏幕只闪烁,没有任何反应。
我尝试过的事情包括:
设置
$TERM
为不同的值,无论是在白蚁中,还是在〜/.tmux.conf.local并在我的.vimrc:xterm-256color, screen-256color, termite-256color
;用其他终端模拟器测试了同样的事情,比如xfce 终端和gnome 终端,两者都工作正常,并且颜色显示正确;
设置在我的.vimrc:
`if &term == "screen"` `set t_Co=256` `endif`
启动 tmux
tmux -2
;在我的别名中.zshrc:
tmux="tmux -2"; tmux="TERM=xterm-256color tmux" (screen blinks and nothing happens); termite="termite --exec "TERM=xterm-256color tmux"; termite="termite -e "TERM=xterm-256color tmux".
编辑: tmux 内部和外部的 $TERM 继续与终端相同。当我echo $TERM
在 tmux 内部和外部时,它输出相同的内容。白蚁发生了这种情况,必须用其他终端进行测试。
答案1
对于有类似问题或相同问题的人来说:您只需将 .rc 和 .tmux.conf 文件中的 $TERM 变量设置为相同即可。要知道是否有问题,我建议使用:checkhealth
neovim 内的命令。
答案2
我在我的文件中使用这些配置~/.tmux.conf
,也应该适用于您:
set -g terminal-overrides ',xterm-256color:Tc'
set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'
答案3
因此,如果有人仍然有兴趣寻找解决方案;对于那些仍然遇到同样问题的人:我不需要做太多事情就能让它很好地工作。
我已经忘记了这件事,并且很长一段时间停止使用 tmux,直到我决定在 Telegram 上的 Linux 小组上询问这个问题,一个很酷的小伙子帮助我解决了这个问题。我们已经在配置文件中找到了这一点sxhkd
:
# Open alacritty with tmux
super + shift + Return
alacritty -e $SHELL -i -c tmux &
我将终端更改为Allacrity
,这是一个GPU-based term
更快、更容易配置的开箱即用的终端,但公平地说,我认为这与此无关。老实说,我不记得 Alacritty 上的颜色有问题,因为当时我没有使用它,因为它是测试版或其他东西......
您可以将其添加到 wm rc 中的键绑定中,或者在 shell rc 中为其创建别名。
另外,如前所述:
您需要将 .rc 和 .tmux.conf 文件中的 $TERM 变量设置为相同。要知道是否有问题,我建议在 neovim 中使用 :checkhealth 命令。
颜色现在内外表现相同tmux
:)
配置文件sxhkd
位于我的 GitHub 上,行06。
我知道死后发布不好,但我不得不这样做,因为这个问题已经困扰我几个月了,尽管我在网上搜索了各种论坛和常见问题解答,但很难找到解决方案,阅读有关相关软件的文档,但找不到相关内容。