Maybe this is something you'll find useful.
I use an older plugin
highlights.vim [1] and have added the following to my .vimrc
--- snip ---
" The leader defaults to backslash, so (by default) this maps \* and \g* (see :help Leader).
" These work like * and g*, but do not move the cursor and always set hls.
map <Leader>* :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
map <Leader>g* :let @/ = expand('<cword>')\|set hlsearch<C-M>
nm <Leader>1 :Highlight 1 <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>2 :Highlight 2 <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>3 :Highlight 3 <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>4 :Highlight 4 <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>5 :Highlight 5 <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>0 :Hclear <C-R>='\<'.expand("<cword>").'\>'<CR><CR>
nm <Leader>*0 :Hclear *<CR><CR>
--- end snip ---
And this gives me a quick and efficient way to uniquely highlight the keyword under the cursor with one of <Leader>1-9. Turn off highlighting the specific keyword under cursor with <Leader>0; to disable all highlights I execute ":hclear".
You'll additionally need to provide your own hightlights.csv in the same directory as highlights.vim. Here is mine as an example
--- snip ---
hlnum,ctermfg,ctermbg,guifg,guibg
1,white,red,white,red
2,white,blue,white,blue
3,white,green,white,green
4,white,magenta,white,magenta
5,white,black,white,black
6,white,red,white,red
7,white,blue,white,blue
8,white,green,white,green
9,white,magenta,white,magenta
--- end snip ---