カラースキームを上書きする 質問する

カラースキームを上書きする 質問する

カラースキームを少し変更したいということがよくありますが、元のファイルを編集したくありません。変更内容を '~/.vim/after/colors/blah.vim' に入れようとしましたが、うまくいきません。


たとえば、BusyBee.vim の CursorLine のハイライトを変更したいとします。

〜/.vim/colors/BusyBee.vim

ファイル '~/.vim/after/colors/BusyBee.vim' を作成し、以下を追加します:

hi CursorLine    guibg=#000000 ctermbg=Black cterm=none

しかし、変更は見られません。もちろん、元の BusyBee.vim の行を変更すれば動作しますが、前述したように、私はそれを行わないことを好みます。

実行中...

:colo Busy<TAB>

見せてくれる...

BusyBee  BusyBee

ベストアンサー1

今日、何を探しているのかと聞かれました。ここで紹介されているものよりも簡単な解決策を見つけました。テーマの黒い背景ではなく透明な背景が欲しいのですが、ステートメントの後で色を単純に上書きしてもcolorscheme機能.vimrcせず、そのためだけにプラグインをインストールするのは奇妙です。私がやったことは次のとおりです。

autocmd ColorScheme * highlight Normal ctermbg=None
autocmd ColorScheme * highlight NonText ctermbg=None

なぜ動作するのでしょうか? vim は、colorschemeステートメントを読み取ってステートメントをロードし、highlightステートメントを読み取って色を変更する以外にも何かを行うと思います。いずれにしても、vim は構成ファイルを読み取った後にのみカラー スキームを変更するようです。そのため、カラー スキームが変更されるたびに色を変更するフックを提供します。嬉しい副作用として、カラー スキームを切り替えてもこれが動作します (if必要に応じてブロックを実行できます)。

おすすめ記事