通过vim-sunset插件更改vim-airline colorscheme

时间:2015-06-01 20:29:18

标签: vim autocmd vim-airline

我刚刚发现了两个我发现非常有用的VIM插件,即vim-sunset(http://vimawesome.com/plugin/sunset)和vim-airline(http://vimawesome.com/plugin/vim-airline-sad-beautiful-tragic)。 使用vim-sunset更改colorscheme很容易,但我希望它也能改变我航空公司的颜色。 我试图通过

实现这一目标

function! Sunset_daytime_callback()
  
  " Version 1
  let g:airline_theme = 'airline_theme_light'

  " Version 2
  colorscheme vim_colorscheme_light
  autocmd ColorScheme * :AirlineTheme airline_theme_light
  
  " Version 3
  autocmd ColorScheme * :AirlineTheme airline_theme_light
  colorscheme vim_colorscheme_light
  
endfunction

Sunset_nighttime_callback()同样的事情)

问题如下:

  • 版本1:我猜变量airline_theme已正确设置,但不会更新。此外,我在航空公司文档中找不到任何功能,提到如何使用新参数“重绘”。
  • 版本2:这种工作方式,但我必须调用函数Sunset_daytime_callback()两次才能更新电力线
  • 版本3:因首次执行:AirlineTheme时插件命令.vimrc尚未就绪而中断

是否有(可能是优雅的)解决方案如何使其工作?我可能只是错过了重新划线的航空公司插件中的功能吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

好的,所以我自己找到了一个解决方案:关键是在尝试设置航空公司颜色方案时检查航空公司插件是否已经加载。 现在它看起来像这样:

function! Sunset_daytime_callback()

  " This Works :)
  colorscheme vim_colorscheme_light
  if exists(':AirlineTheme') " check if the plugin is loaded
      :AirlineTheme light
  else
      let g:airline_theme = 'light'
  endif

endfunction