問題:
リロードする.vimrc
と、一部のハイライト グループが台無しになります。使用しているプラグインと使用している配色によって異なります。highlight links
壊れているものもあれば、highlight groups
クリアされているものもあることに気付きました。
影響を受けるハイライト グループ
私の特定のセットアップでは、壊れているhi links
かクリアされていることに気付きましgroups
た:
リロード後に影響を受ける領域に注意してください:
(リロードとは、変更されたファイルを保存することを意味します。:wa
この例では使用しています)
解決
残念ながら、リストされた回答または私が試したオプションの組み合わせは、hi
リロード後にグループを保持または復元しません。colorscheme <your-coloscheme>
リロード後に手動で実行するとすべてが修正されますが、それを実行しても修正Vimscript
されません。
誰かがこの厄介な小さな問題の適切な解決策を共有してくれることを願っています.
醜いハック
vimrc のリロード:
私のvim構成ファイルに変更があった場合は、次を実行しreload.vim
ます:
.vimrc:
" .....
augroup reload_vimrc " {
autocmd!
autocmd BufWritePost ~/.vim/*.vim,~/.vim/vimrc source ~/.vim/reload.vim
augroup END " }
reload.vim
: 壊れたリンクとクリアされたグループを復元します
私たちがしなければならないことは、hi
ソーシング後にグループを元に戻すことvimrc
です。
影響を受ける領域の正しい値を見つけるには、たとえば、次のようSignColumn
に入力します。
:hi SignColumn
,リロードが発生する前。
結果は次のとおりです (xxx
はプレビューです)。
影響を受けるすべての に対してこれを行う必要がありますhi
。
次のスニペットでは、最初にカラースキームSignColumn
に合わせて修正していsolarized
ます。
次に、いくつかのGitGutter
色の問題を修正します。
たとえば、GitGutterAdd
へのリンクGitGutterAddDefault
は保存されていますが、からGitGutterAddDefault
へのリンクDiffAdd
が壊れているため、それを再インストールします。などなど。
リロード.vim:
source ~/.vim/vimrc
hi SignColumn ctermfg=12 ctermbg=0 guifg=Cyan guibg=Grey
" GitGutterAdd -> GitGutterAddDefault (preserved)
hi link GitGutterAddDefault DiffAdd
" GitGutterChange -> GitGutterChangeDefault (preserved)
hi GitGutterChangeDefault ctermfg=3 ctermbg=0 guifg=#bbbb00
" GitGutterDelete -> GitGutterDeleteDefault (preserved)
hi GitGutterDeleteDefault ctermfg=1 ctermbg=0 guifg=#ff2222
" GitGutterChangeDelete -> GitGutterChangeDefault (preserved)
" (which we already fixed above)
" Powerline highlight groups
" (see this attached Gist for solution)
すべてが正常に機能します。
これは少しトリッキーですが、原理は同じです。powerline
で始まるすべてのハイライト グループPl_
。しかし、それらのいくつかはまだ存在していない可能性があります。たとえば、visual
まだモードに入っていない場合、ビジュアル モードのそれぞれのグループはまだ設定されていません。したがって、insert
、visual
、およびnormal
モードを入力して、グループにデータを入力してからコピーします。これらは、コマンドの出力の下部にありますhl
。次に、それらをあなたに貼り付けて、reload.vim
正当なコマンドになるように適応させhl
ます。
大変な作業のように聞こえるかもしれませんが、そうではありません。完全なの要点と、ガイドreload.vim
となるものをいくつか示します。gifs