我正在使用tmux
,最近发现tmux内部和外部相同的vim颜色主题有不同的颜色
左边是tmux
in gnome-terminal
,右边是 plain gnome-terminal
,gnome-terminal
有默认颜色:
编辑:仔细观察,样式也确实发生了变化(看看粗体等)。
两个终端都是 256 色的(gnome-terminal
将自己表示为xterm-256color
, tmux
as tmux-256color
,参见ncurses-term
包),vim
也看到了(:set t_Co
给出 256)。我比较了他们的颜色表示
for i in `seq 0 255` ; do echo -e "$i: \e[48;5;${i}m \e[0m"; done
并得到了相同的调色板:
我认为tmux
应该将这些颜色传递给gnome-terminal
,但是为什么vim
会改变呢?
我可以解决这个问题吗?我认为gnome-terminal
那些更好,并且想tmux
使用它们。
答案1
由于某种原因,这只是一个 Vim 问题:当在 中启动时tmux
,它加载了default
colorcheme,但是当从普通终端启动时,它加载了desert
colorcheme 但default
在通过 询问时仍然调用它:colorsheme
。强制:colorsheme default
解决了一个问题,所以我colorsheme
在我的行中添加了行~/.vimrc
,现在就可以了。
我不知道 Vim 为什么要这么做,但强制使用所需的颜色主题效果很好。