tmux 中的 Vim 显示错误的颜色

tmux 中的 Vim 显示错误的颜色

我安装了 Ubuntu 11.10。然后为 Gnome Terminal 下载了 Solarized 主题。从终端看,我的 vim 看起来不错:插件 vim-powerline 显示正确,语法以正确的颜色突出显示。但是当我运行 tmux 并运行 vim 时 - 语法突出显示仅使用一种基本颜色,而 vim-powerline 不显示任何颜色。我查看了 vim-powerline 的常见问题解答,解决方案应该是 .tmux-config 中的这一行:

set -g default-terminal "screen-256color"

但它不起作用。我查看了 TERM,它返回“xterm”,所以我尝试了:

set -g default-terminal "xterm-256color"

但这也无济于事。

这是 .tmux.config 中的唯一一行。在 .vimrc 中,我有以下几行:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized

答案1

使用以下标志启动 tmux 可以解决这个问题:

tmux -2

来自 tmux 手册页:

-2 强制 tmux 假定终端支持 256 种颜色。

答案2

这对我有用

.tmux.conf

set -g default-terminal "screen-256color"

.vimrc

set term=screen-256color

删除 .vimrc 的旧术语值,相信我这会起作用

答案3

我在 Ubuntu 10.04 LTS 上使用 Byobu 5.17 和 tmux 1.5 使用来自 GitHub repo 的最新 Solarized 时遇到了同样的问题。

我可以通过在文件$TERM中指定来部分修复此问题.bashrc

export TERM="xterm-256color"

此外,似乎在启动板上有一个错误,但尚未解决: byobu 无法正确显示 dircolors

答案4

终端类型应在 ~/.tmux.conf 中设置为 screen-256color。它告诉 tmux 设置 TERM 环境变量,因此它不适用于当前会话 - 启动一个新会话然后进行测试。

如果仍然不起作用,你可以使用以下命令运行 Vim:

TERM=screen-256color vi

这仅为一次性 vi 执行设置环境变量。

如果这不能使 vim 显示所有颜色,请测试您的终端(我不确定您是否只使用一个终端仿真器进行测试)是否编译为支持 256 色调色板 - 从相关的终端仿真器下载并运行以下 Perl 脚本。

http://scie.nti.st/dist/256colors2.pl

PS. 我想你已经修正了 jordanbrock 发现的拼写错误。

相关内容