嵌套终端的颜色方案,tmux,ssh,vim设置

时间:2014-09-13 08:32:29

标签: vim terminal tmux color-scheme

在我的本地计算机上,iterm终端包含tmux。在tmux里面,有ssh远程连接。在这个远程连接中,我在服务器端运行tmux。在那个tmux中,我运行vim。

所以,容器关系如下:首先是iterm,然后是tmux,然后是ssh远程连接,然后是tmux,然后是vim。

现在,vim的颜色是如何确定的?哪种应用的颜色方案有效?

1 个答案:

答案 0 :(得分:7)

您看到的颜色很好地受到终端仿真器的“物理”功能的限制,但它们的数量通常会被程序使用的TERM环境变量所改变,以确定它们的可能性。在他们的着色。

用简单的术语......

  • 当Vim检查您的TERM并看到包含256的值时,它会假定您的终端模拟器能够显示256种颜色并采取相应的行动。

  • 当您的TERMxtermscreen(以及其他人)时,Vim会假设您的终端模拟器只能显示8种颜色并采取相应的行动。

假设您的本地终端模拟器中的当前TERMxterm-256color且中间*rc没有设置特定的TERM

WHERE                                 TERM              COLORS
--------------------------------------------------------------
local                                 xterm-256color    256
local > vim                           xterm-256color    256
local > remote                        xterm-256color    256
local > remote > vim                  xterm-256color    256
local > remote > remote > remote > remote > remote > remote >
> remote > remote > remote > remote   xterm-256color    256
local > remote > tmux                 screen            8
local > remote > tmux > vim           screen            8
local > tmux                          screen            8
local > tmux > vim                    screen            8
local > tmux > remote                 screen            8
local > tmux > remote > tmux          screen            8
local > tmux > remote > tmux > vim    screen            8

Tmux作为终端多路复用器,就好像它是一个终端仿真器,并将TERM更改为tmux的默认值screen,并且新值是沿链传递的值。

如果你想在任何地方使用tmux 花哨的颜色,你需要配置每个tmux以使用256色准备TERM。在您登录的每台计算机上将此行放在~/.tmux.conf中,包括您的:

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