How do I globally turn off undercurls in Vim-GUIs (GVim & MacVim)?

  • You mean spell-checking? – wbogacz Jan 27 '18 at 23:56
  • You can use the command :setlocal spell! to toggle its state from on to off. If you wish to toggle it on later, :setlocal spell! spelllang=<lang> or add to your .vimrc – wbogacz Jan 28 '18 at 0:13
  • I see the confusion. Even the :set form of the command does not appear global, and acts local to the active buffer. – wbogacz Jan 28 '18 at 0:19
  • No, I don't mean spell checking. Some plugins (for example autozimus LanguageClient-neovim) mark errors this way. I already have my errors in the sign gutter and don't need additional noise in my code. So I thought there might be a way to turn undercurls off regardless of where they originate. – 303 Jan 28 '18 at 17:02
  • You were right. It was the spell checker. And it wasn't LanguageClient-neovim, that used its settings, but ALE. – 303 Jan 29 '18 at 0:01

I found the solution myself. Enter :hi SpellBad, :hi SpellCap, :hi SpellRare and :hi SpellLocal in normal mode. It will output the display settings of your spell checker. Note the output in a list. Remove all parameters with the value undercurl. Add this to your .vimrc, changed according to your own settings.

autocmd ColorScheme * hi clear SpellBad
    \| hi SpellBad term=reverse ctermbg=12 guisp=Firebrick2
    \| hi SpellCap term=reverse ctermbg=9 guisp=Blue
    \| hi SpellRare term=reverse ctermbg=13 guisp=Magenta
    \| hi SpellLocal term=underline ctermbg=11 guisp=DarkCyan

The important part is, that no parameter with the value undercurl is present.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.