If you just want to highlight them, search with /buffer and make sure hlsearch is on. Or, for a more permanent solution, navigate to the quickfix window and use :match Search /buffer/
If you care more about filtering, I would do :packadd cfilter, which provides the :Cfilter command. Then a :Cfilter /buffer/ gives you only entries with buffer, and ...
With the match command, you only get 3 match ids:
:match noteHi /\[\cNOTE:[^=]*\]/
:2match todoHi /\[\cTODO:[^=]*\]/
:3match what /ever/
Each time you call these commands for a particular id (1,2,3) you replace whatever was there before. So you can have 3 different ones but that's it, only 3. If you need more, use matchadd().
Most probably you have set spell enabled which usually checks spelling in comments.
If you don't need it turn it off with :set nospell. Activate when you need it with :set spell.
To toggle use :set spell!.
Map it if you do it often, for example:
nnoremap yos :set spell!<CR>
Then yos will toggle spelling.
If by "persisted" you mean only in a current vim session (not stored with text file), then :h textprop API might be what you want.
Here is the proof of the concept:
" check if 'markline' text property exists
" define Markline highlight group to be used for ....
I think what you want is found at :help pattern and searching for line number.
/\%l /\%>l /\%<l
\%23l Matches in a specific line.
\%<23l Matches above a specific line (lower line number).
\%>23l Matches below a specific line (higher line number).
These three can be used to match specific ...
I tried it manually and the last line gave me this error:
E254: Cannot allocate color s:splitcolor
So the guifg value isn't set to anything. (The guibg value is set so that may explain why you noticed some change to the VertSplit appearance.)
The problem is that this command doesn't evaluate the parameter values unlike, for example, the way :echo s:...