42

我正在测试我倾向于使用 SSH 连接到我设置了 Tmux 的 Linux 机器的各种不同终端。

基本上我注意到了这种行为,我希望有人可以解释发生了什么。现在,这可能是影响 Prompt 应用程序的特定行为。

我在 Tmux 中使用 Vim,在我的 iPhone5 上的 Panic 的 Prompt 应用程序中,当使用指令.vimrc设置颜色时,我遇到了 256 种颜色未启用的行为。set t_Co=256在这里,当 Vim 没有通过 Tmux 运行时,它可以正确显示颜色。此外,OS X 的 Terminal.app 使用 Tmux 中的 Vim 正确渲染了颜色(不幸的是,我没有在 Windows 上测试 PuTTY)。

然后我换掉了set t_Co=256set term=xterm-256color现在通过 Tmux 使用 Vim 时颜色可以工作了。

另请注意,我测试了Tmux 的设置set -g default-terminal "xterm-256color"set -g default-terminal "screen-256color"设置,并且此更改对行为没有影响。

4

2 回答 2

91
于 2013-03-13T06:56:46.347 回答
11

set t_Co=256您可以同时使用两者set term=xterm-256color

term告诉 Vim 使用什么终端类型,它控制 Vim 各个方面的显示/渲染,包括如何映射键输入、重绘屏幕、移动光标、显示颜色等。通常,Vim 可以自己解决这个问题通过TERM您的操作系统提供的环境变量。

如果操作系统值不正确,明确设置它通常很有帮助。如果您从不提供正确值的终端仿真器通过网络连接,则尤其如此。

t_Co是许多终端选项之一(由 Vim 用于终端控制的 termcap 系统使用)。它特指终端支持的颜色数量。如果终端仿真基本正确,有时您需要覆盖它,但 Vim 不能正确识别支持的颜色数量。

我使用这两个选项.vimrc来确保 Vim 在 tmux 中使用我喜欢的所有终端(Ubuntu 的 gnome-terminal、OSX 的 iTerm2 和 Windows 的 KiTTY)在 tmux 中使用 256 种颜色。我也将这些终端中的大多数显式配置为xterm-256color作为终端类型发送。

于 2013-03-13T02:49:12.427 回答