0

最近、非常に便利な 2 つの VIM プラグインを発見しました。vim-sunset ( http://vimawesome.com/plugin/sunset ) と vim-airline ( http://vimawesome.com/plugin/vim-airline-sad ) です。 -美しい-悲劇的)。vim-sunset を使用してカラースキームを変更するのは簡単でしたが、航空会社の色も変更したいと考えています。私はこれを達成しようとしました

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()、電力線も更新するために関数を 2 回呼び出す必要があります。
  • バージョン 3:が最初に実行されたとき、プラグイン コマンド:AirlineThemeがまだ準備できていないため、中断します。.vimrc

これを機能させる方法(おそらくエレガントな)ソリューションはありますか?線を再描画するだけの航空会社プラグインの機能を見逃したのでしょうか?

ご協力いただきありがとうございます!

4

1 に答える 1

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

于 2015-06-17T12:24:43.510 に答える