Right now, when I do :set spell
in my Vim, I get spelling errors highlighted as if they are selected text. What I want is an MS-Word like underlining of spelling errors. I tried to lookup :help spell
but could not find a clue. Any help is appreciated.
Spelling errors are highlighted using the SpellBad
highlighting group. To get it highlighted as you want, you should put something like
hi clear SpellBad
hi SpellBad cterm=underline
" Set style for gVim
hi SpellBad gui=undercurl
after the last line that is altering the color scheme in your vimrc (it is either set background=(dark|light)
or colorscheme {schemename}
).
See also :h hl-SpellBad
for names and descriptions of other Spell* highlight groups.
:hi SpellBad cterm=underline ctermfg=red
. Or have it underlined and bold: :hi SpellBad cterm=underline,bold
. –
Coverdale ----
too, but it just seemed logical that changing to squiggly should just involve replacing -
with ~
, but I could be wrong there. –
Schoening ----
shown? Terminals don't use symbols for underlining (though you can always write your own that will), they just interpret particular escape sequence sent by vim as «start underlined region» and another sequence as «end underlined region» (or even «clear all styles»). What is actually shown is determined in code of the terminals, but I guess most of them just pass style information to font rendering library. Nothing here prevents terminals from supporting squiggly underlining, but font libraries don't use symbols for underlining. –
Rodger hi clear SpellLocal
could also help, depending on the dictionary. –
Lentigo The above needs to be typed everytime you set colorscheme. If you wish to avoid it, you should use autocmd
.
For a quick and dirty way to change the highlighting color if you have a colorscheme loaded, is to modify your colorscheme.
Running, :verbose highlight SpellBad
showed me where the config file is for my theme. More like, it showed where the SpellBad directive was set. Your mileage may vary. Please see below output:
:verbose highlight SpellBad
SpellBad xxx term=reverse ctermbg=9 gui=undercurl guisp=Red
Last set from /usr/share/vim/vim81/colors/desert.vim line 17
I navigated to desert.vim
and added, hi SpellBad term=reverse ctermbg=226 gui=undercurl guisp=Yellow1
and saved the file. (you'll need sudo to modify the file). Once I reopened vim and ran, :verbose highlight SpellBad
the output was now:
:verbose highlight SpellBad
SpellBad xxx term=reverse ctermbg=226 gui=undercurl guisp=Yellow1
Last set from /usr/share/vim/vim81/colors/desert.vim line 35
My highlight color was changed! Note that if you change your colorscheme, you'll most likely have to change the highlight color in your selected colorscheme file.
© 2022 - 2024 — McMap. All rights reserved.
undercurl
("squiggly" underlining similar to ms word) is the default in gvim, though obviously, there's no way to make a "squiggly" underline in a terminal. – Presentational