## 概要 以下のようにカーソル配下のwordとMarkdownのコードブロックに[[nvim_set_hl]]を使ってハイライトを設定するケースを考える。 ```lua -- カーソル配下のword vim.api.nvim_set_hl(0, "IlluminatedWordText", { fg = "black", bg = "#abab23" }) -- Markdownのコードブロック vim.api.nvim_set_hl(0, "ColorColumn", { bg = "#454545" }) ``` 期待値は以下を満たすこと。 - コードブロック内であるかにかかわらず、カーソル配下のワードを、文字色は黒、背景は`#ababa23`でハイライト ただ、実際は上記ケースでは背景色が`#454545`のまま変わらない。これは[[ハイライトグループ (Vim)|ハイライトグループ]]に対する優先度を設定できていないことが原因であると考えられる。 ## 解決方法 今のところはなさそう。なぜなら、[[ハイライトグループ (Vim)|ハイライトグループ]]に優先度を指定する方法がなさそうだから。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://cdn.sstatic.net/Sites/vi/Img/favicon.ico?v=567b5ad1cf58" /> <span class="link-card-v2-site-name">Vi and Vim Stack Exchange</span> </div> <div class="link-card-v2-title"> In Neovim is there a way at nvim level to set priorities to control highlight resolution? </div> <div class="link-card-v2-content"> Background:It's possible for multiple highlights to affect the same areas in the buffer and work correctly. For ... </div> <img class="link-card-v2-image" src="https://cdn.sstatic.net/Sites/vi/Img/[email protected]?v=af57295b1ad9" /> <a href="https://vi.stackexchange.com/questions/41420/in-neovim-is-there-a-way-at-nvim-level-to-set-priorities-to-control-highlight-re"></a> </div> > There is no explicit way to control how two highlight groups interact with each other. 例外的に `{ reverse = true }` だけは常に優先されるため、色に拘りがなければ常に`IlluminatedWordText`を優先することはできる。 ```lua -- カーソル配下のword vim.api.nvim_set_hl(0, "IlluminatedWordText", { reverse = true }) -- Markdownのコードブロック vim.api.nvim_set_hl(0, "ColorColumn", { bg = "#454545" }) ```