我最近发现了两个非常有用的VIM插件,即VIM -sunset (http://vimawesome.com/plugin/sunset)和VIM -airline (http://vimawesome.com/plugin/vim-airline-sad-beautiful-tragic)。用紫色日落来改变配色方案很容易,但我也想改变我的航空公司的颜色。我已经尝试通过
来实现这一点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
第一次执行
是否有一个(可能是优雅的)解决方案如何得到这个工作?我可能只是错过了一个函数在航空公司插件,只是重新绘制线?
谢谢你的帮助!
好的,所以我自己找到了一个解决方案:关键是在尝试设置航空公司配色方案时检查是否已经加载了airline-plugin。现在它看起来像这样:
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