我测试,我倾向于使用SSH来进,我有TMUX建立在Linux系统的各种不同的终端。
基本上,我注意到了这个行为,我希望有人能提供什么事情的说明。 现在,它可能是,这是影响提示应用程序特定行为的情况。
我使用议会内TMUX,以及关于iPhone5的我恐慌的提示应用程序我有以下行为:如果256个色未启用时.vimrc
使用设置颜色set t_Co=256
指令。 在这里,在Vim正确显示的颜色,当它不是通过TMUX运行。 此外,OS X的Terminal.app正确的Vim呈现在TMUX的颜色(我没有这个不幸上测试的窗户腻子)。
然后我换出set t_Co=256
为set term=xterm-256color
现在的颜色通过使用TMUX Vim时工作。
另请注意,我测试了set -g default-terminal "xterm-256color"
和set -g default-terminal "screen-256color"
为TMUX设置和这种变化对行为产生任何影响。
当你不使用tmux
或screen
,你只需要配置您的终端仿真器通过设置宣传自己是“能够显示256种颜色的” TERM
到xterm-256color
或与您的终端和平台的工作原理任何可比价值。 你是如何做到的将取决于终端仿真器,是你的问题,这个答案的范围之外。
你不需要在Vim里做任何事情 ,因为它是完全能够自己做了正确的事情。
当您使用tmux
或screen
,这些程序设置为自己的缺省值$TERM
,通常screen
,和Vim做什么它有它被赋予的信息做。
如果你想更均匀(多彩)行为,必须将其配置为使用一个“更好的”价值$TERM
:
现在,这两个多路复用器会告诉他们的Vim支持256个色和Vim会做你期望它做的事情。
编辑
我的回答假设您可以编辑这些配置文件,但是,因为你可以编辑您~/.vimrc
,我不认为我是离谱。
编辑2
所述的值term
选项(使用检索&term
)是Vim在启动时作为拿起终端的名称。 这名字是你应该建立在你的终端模拟器本身的东西。
所述的值t_Co
选项( &t_Co
)是Vim认为是,可以由主机终端被显示的色彩的最大数目。 它是根据对应条目定义$TERM
中terminfo
:
term | t_Co
-----------------+------
xterm | 8
xterm-256color | 256
screen | 8
screen-256color | 256
如果Vim启动时,它得到的值TERM
环境变量,查询terminfo
与价值的数据库和几个存储了一些关于它的环境信息的t_…
变量其中...的颜色中可用的数量t_Co
。 给定一个“合法”的终端类型(一个Vim可以查找)时,Vim 总是假定的颜色正确的数字。
设置t_Co
到256
,同时保留term
为Vim的定义值-或者更一般地,设置t_Co
和/或term
到不与主机终端匹配值-是没有意义的,很可能会创造麻烦在Vim发送信号不是由终端或反之亦然理解。
虽然这是完全有可能的话,搞乱t_Co
和term
是Vim都完全无用的和可能有害。
同样,只需设置你的终端模拟器和终端复用器正确。 这真的是你所需要的。
如果你在一个终端复用器或终端仿真器,你不能确定正确的最终TERM
,那么只有到那时,你可以强制Vim来承担256个色。 为此,改变的值t_Co
是唯一有意义的事情:
if &term == "screen"
set t_Co=256
endif
所以...如果你可以配置每个独立的部分:
- 终端仿真器:
xterm-256color
- TMUX /屏幕:
screen-256color
- VIM:无
和你做。
如果你无法控制每一个部分,用一个简单的条件在你~/.vimrc
设置t_Co
根据&term
,但不改变的值term
。
但是,如果你可以编辑~/.vimrc
没有理由你不能编辑~/.screenrc
或~/.tmux.conf
或~/.bashrc
或什么的。
您可以使用这两种set t_Co=256
和set term=xterm-256color
在一起。
term
告诉Vim使用什么终端类型,它控制的Vim所有方面,包括如何映射键输入时,重画屏幕,移动光标,显示颜色等。通常显示/呈现,Vim可以在算出这个其通过自己的TERM
由你的操作系统提供的环境变量。
这往往有助于明确设置的情况下,操作系统值不正确。 如果你从一个终端仿真器,没有提供正确的值连接在网络上尤其如此。
t_Co
是许多终端选项(由Vim使用终端控制的termcap系统中使用的)之一。 它特指的终端支持的颜色的数目。 有时候,你需要重写此如果终端仿真大多是正确的,但Vim的不正确识别的支持颜色数。
我用这两个选项在我.vimrc
确保Vim的使用所有我喜欢的终端(Ubuntu的Gnome终端,OSX的iTerm2,和Windows的凯蒂猫)在TMUX 256个色。 我也有大部分的那些终端的显式配置为发送xterm-256color
作为他们的终端类型。
文章来源: Vim: Difference between t_Co=256 and term=xterm-256color in conjunction with TMUX