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

嵌套终端、tmux、ssh、vim设置的颜色方案,vim,terminal,tmux,color-scheme,Vim,Terminal,Tmux,Color Scheme,在我的本地计算机上,iterm终端包含tmux。在tmux内部,有ssh远程连接。在这个远程连接中,我在服务器端运行tmux。在tmux中,我运行vim 因此,容器关系如下:首先是iterm,然后是tmux,然后是ssh远程连接,然后是tmux,然后是vim 现在,vim的颜色是如何确定的?哪种应用程序的颜色方案有效?您看到的颜色受终端仿真器的“物理”功能的限制,但它们的数量通常由术语改变,该术语由程序使用,以确定它们的颜色有多花哨 简单地说 当Vim检查您的术语并看到包含256的值时,它假定

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

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


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

您看到的颜色受终端仿真器的“物理”功能的限制,但它们的数量通常由
术语改变,该术语由程序使用,以确定它们的颜色有多花哨

简单地说

  • 当Vim检查您的
    术语
    并看到包含
    256
    的值时,它假定您的终端仿真器能够显示256种颜色,并相应地执行操作

  • 当您的
    术语
    xterm
    屏幕
    (除其他外),Vim假定您的终端仿真器只能显示8种颜色,并相应地进行操作

假设本地终端仿真器中当前的
术语是
xterm-256color
,并且中间
*rc
均未设置特定的
术语

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作为一个终端多路复用器,就像它是一个终端仿真器一样,将您的
术语
更改为Tmux的默认值,
屏幕
,这个新值就是沿着链传递的值

如果您希望tmux和花式颜色无处不在,则需要将每个tmux配置为使用256色就绪的
术语
。在您登录的每台计算机(包括您的计算机)上,将这一行放入
~/.tmux.conf

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