Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now
8

I've been struggling with that behavior for a long time. Basically, the foreground color of SpecialKey on the current line is changed to the foreground color of Normal if: the cursorline option is enabled, the CursorLine highlight group has a background color set. I've never been able to fix that behavior, no matter what I tried. The problem lies ...


5

Patch 8.0.0641 introduced a separate highlight group for the quickfix line, called QuickFixLine. With patch 8.0.0653 this group is linked to the Search highlight by default, because for some color schemes the colors chosen for patch 8.0.0641 did not work well. So if you have a current version of Vim you can use hi QuickFixLine cterm=None ctermbg=256 guibg=#...


4

One would expect, that the OptionSet autocommand is triggered when entering diff mode. Unfortunately that is currently not the case. So I created a patch that will enable this behavior. Once it is merged, you can basically do this: au OptionSet diff let &cul=!v:option_new As a workaround, currently you have to do something like this: augroup ...


3

As you can see from the output of :verbose :hi CursorLine, your CursorLine setting is reset by the colorscheme you are using. There are a couple of approaches you can use to change that. Simply comment out the line in the colorscheme. Use a VimEnter autocommand, to have your configuration setting set after Vim has startup: augroup CustomCursorLine au! ...


2

What worked for me was the following lines in my .vimrc (based on Igor Mikushkin's answer). autocmd BufNewFile,BufRead * call matchadd('SpecialKey', '\s\+') autocmd BufNewFile,BufRead * call matchadd('NonText', '\n\+') VimEnter only works for the first file you open, not for files/tabs you open afterwards. BufNewFile,BufRead has worked so far for all the ...


2

Create the file in ~/.vim/ftplugin/qf.vim (or $HOME/vimfiles/ftplugin/qf.vim if you are on Windows) with the following contents: " Only do this when not done yet for this buffer if exists("b:did_ftplugin") finish endif wincmd p " go to original window set cursorline set cursorcolumn wincmd p " back to quickfix window The ftplugin files are executed ...


2

:h BufWinEnter is the event: :autocmd! BufWinEnter * if &previewwindow | setlocal cursorline | endif I guess the discrepancy is because WinEnter is triggered before 'previewwindow' is set. Possibly what's meant by this note in the help: Note: For split and tabpage commands the WinEnter event is triggered after the split or tab ...


2

As @Christian Brabandt pointed out in the comment this is a known issue and there might not be a lot of solutions, for now, to make cursorline work properly. However, you can use different workarounds: In this answer @Carpetsmoker suggest a mapping which will set cursorline and cursorcolumn for a fraction of a second. This is pretty useful to easily locate ...


1

The CursorLine highlighting group defines how the current line will be highlighted, once :set cursorline is enabled. As you have noticed, it contains an option for setting the background color. If you do not want that and basically just want the underlining to take place, I would suggest to change the highlighting group to: :hi CursorLine cterm=underline ...


1

This is not possible as of today. The reason most likely is, that the non-highlighted indented part is actually only a representation and does not really exist in the file. I am not sure it makes sense, to color that for the cursorline. For reference, this question has made it to a Vim Ticket: #3355


1

Try the following two commands: " Match when cursor before column matchadd('ColorColumn', '\%#.*\zs\%81v', 100) " Match when cursor after column matchadd('ColorColumn', '\%81v\ze.*\%#', 100) It should be possible to combine these into a single regular expression, but simply placing them into an alternation with \| doesn't work correctly*, so doing so ...


1

currently I solved it this way (though I would be very grateful if someone suggested a better way). I created a syntax highlihgt file for the qf syntax ~/.vim/after/syntax/qf.vim. There I defined: setlocal nocursorline hi Search cterm=none ctermbg=226 guibg=#ffff00 This disabled the cursor line highlighting in the quickfix window (which is tolerable for ...


1

One dumb solution I find is to type :!clear in vim, but this is just a temporary solution. I am yet to find a better solution. Are you able to fix your issue?


1

Following lines in .vimrc fixed the problem for me. au VimEnter * call matchadd('SpecialKey', '^\s\+', -1) au VimEnter * call matchadd('SpecialKey', '\s\+$', -1) It overrides other styles application for tabs and trailing spaces inside a cursor line.


Only top voted, non community-wiki answers of a minimum length are eligible