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

Mer*_*glu 7 vim terminal color-scheme tmux

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

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

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

rom*_*inl 8

您看到的颜色很好,受到终端仿真器的"物理"功能的限制,但它们的数量通常TERM会被程序用来确定它们着色程度的环境变量所改变.

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

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

  • 当你TERMxterm或者screen(或其他),Vim假设您的终端仿真器只能显示8种颜色并相应地采取行动.

假设您TERM在本地终端模拟器中的当前设置是,xterm-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
Run Code Online (Sandbox Code Playgroud)

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

如果你想要tmux 和各种奇特的颜色,你需要配置每个tmux使用256色准备TERM.将此行~/.tmux.conf放在您登录的每台计算机上,包括您的:

set-option -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)