【问题标题】:Change colorscheme based on terminal colours根据终端颜色更改配色方案
【发布时间】:2018-03-07 19:45:52
【问题描述】:

我使用 iTerm、zsh 和 vim。

当我的终端使用 Solarized Light 配置文件时,我希望我的 vimrc 能够

color solarized
set background=light

但是当我使用 Lucario-ish 我希望我的 vimrc 能够

color lucario
set background=dark

有什么想法可以做到这一点吗?

我一直无法确定是否有办法在 zsh 或 vim 中检测当前配置文件,也许我必须设置我的配置文件以在使用它们时设置一些环境变量。

我可以在 vim 中检测到这个环境变量,

if $PROFILE == "solarized"
  color solarized
  set background=light
else
  ...

有没有办法让我不必更改我的个人资料或在我的 vimrc 之外写任何东西?

我可以通过更改我的 vimrc 来做到这一点吗?

【问题讨论】:

  • 如何更改~/.iterm2_shell_integration.zsh,并在那里设置环境变量而不是在配置文件中设置。
  • @sel-fish 我如何从脚本中检查配置文件?

标签: macos vim zsh iterm2 iterm


【解决方案1】:

一种方法是制作颜色列表,另一种方法是使用相应的背景:

let mycolors = ["solarized","lucario"]
let mybgs = ["light","dark"]

然后遍历第一个列表,将其值与 $PROFILE 进行比较:

let j=0
for i in mycolors      
  if $PROFILE == mycolors[j]                                                    
    execute "colorscheme ".mycolors[j]                                        
    execute "set background=".mybgs[j]                                   
    break                                                                   
  endif
  let j+=1                                                                
endfor                                                           

【讨论】:

  • 但我的问题是如何在不手动设置环境变量的情况下做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多