TransWikia.com

How can I still see underscores with cursorline?

Vi and Vim Asked by Sparhawk on August 31, 2021

Background and problem

I’ve just discovered how to make the cursor a vertical line in insert mode. This works well with cursorline; even with the thinner cursor, I can still easily find my position.

autocmd InsertEnter * set cul
autocmd InsertLeave * set nocul

However, the default underline makes it hard to see literal underscore characters _.

Attempts

  1. I know I can change the highlighting of CursorLine, which would make underscores visible again, but this breaks syntax highlighting.
  2. Another option is to highlight the underscore character itself in Insert mode. However, this seems like overkill, because I don’t want every single underscore highlighted. Also, it doesn’t work for areas that are syntax highlighted.
syn match underscore "_"
autocmd InsertEnter * hi underscore ctermbg=grey cterm=none ctermfg=black
autocmd InsertLeave * hi clear underscore
  1. I also know that I can change the cursorline to bold, italics, etc., but this is also visual overkill.

  2. An ideal solution would be to make the cursorline underline be a light colour, with the literal underscore a darker black, but it seems that cursorline always inherits ctermfg.

Is there a simple way to still see underscores, while using cursorline?

I’m using regular terminal vim (in Terminator generally), not gvim.

One Answer

I actually went with coloring the background of the line number. This way you're not interfering with syntax colors or underscores.

So basically I have this (for light background terminal)

highlight CursorLineNr ctermfg=white guifg=white ctermbg=darkgrey guibg=darkgrey cterm=bold gui=bold

Answered by xicod on August 31, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP