How to change the highlight style in Vim spellcheck?

31,475

Solution 1

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.

Solution 2

The above needs to be typed everytime you set colorscheme. If you wish to avoid it, you should use autocmd.

See https://vi.stackexchange.com/questions/18295/how-to-set-a-colorscheme-that-still-shows-spelling-errors

Share:
31,475

Related videos on Youtube

Ketan Maheshwari
Author by

Ketan Maheshwari

Updated on July 08, 2022

Comments

  • Ketan Maheshwari
    Ketan Maheshwari almost 2 years

    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.

  • Joe Kington
    Joe Kington almost 13 years
    Beat me to it! It's also worth mentioning that 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.
  • sunnet
    sunnet almost 13 years
    Could be useful to have a color change also, e.g., :hi SpellBad cterm=underline ctermfg=red. Or have it underlined and bold: :hi SpellBad cterm=underline,bold.
  • ZyX
    ZyX almost 13 years
    @yoda Replacing where? It is not impossible to make a X terminal that supports squiggly underlining, but I do not know about that feature in any of the terminals I use. And I guess this terminal will either have squiggly underlining instead of normal or will be unsupported by vim without manual patching.
  • abcd
    abcd almost 13 years
    @ZyX: I don't know, was just wondering. All of mine show it as ---- too, but it just seemed logical that changing to squiggly should just involve replacing - with ~, but I could be wrong there.
  • ZyX
    ZyX almost 13 years
    @yoda: I don't get where is ---- 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.
  • yuan
    yuan almost 11 years
  • etham
    etham almost 3 years
    hi clear SpellLocal could also help, depending on the dictionary.