Comment changer le style de surbrillance dans le correcteur orthographique Vim?

90

À l'heure actuelle, lorsque je le fais :set spelldans mon Vim, j'obtiens des fautes d'orthographe en surbrillance comme s'il s'agissait de texte sélectionné. Ce que je veux, c'est un MS-Word comme le soulignement des fautes d'orthographe. J'ai essayé de :help spellchercher mais je n'ai pas trouvé d'indice. Toute aide est appréciée.

mkc
la source

Réponses:

127

Les fautes d'orthographe sont mises en évidence à l'aide du SpellBadgroupe de mise en évidence. Pour le mettre en évidence comme vous le souhaitez, vous devez mettre quelque chose comme

hi clear SpellBad
hi SpellBad cterm=underline
" Set style for gVim
hi SpellBad gui=undercurl

après la dernière ligne qui modifie le jeu de couleurs dans votre vimrc (c'est soit set background=(dark|light)ou colorscheme {schemename}).

Consultez également les :h hl-SpellBadnoms et descriptions d'autres groupes de surbrillance Spell *.

ZyX
la source
1
Battez-moi! Il est également intéressant de mentionner que undercurl(soulignement "ondulé" similaire à ms word) est la valeur par défaut dans gvim, bien qu'il n'y ait évidemment aucun moyen de faire un soulignement "ondulé" dans un terminal.
Joe Kington
23
Peut - être utile d'avoir un changement de couleur aussi, par exemple, :hi SpellBad cterm=underline ctermfg=red. Ou l' ont souligné et en gras: :hi SpellBad cterm=underline,bold.
Herbert Sitz
@yoda Remplacer où? Il n'est pas impossible de créer un terminal X qui prend en charge le soulignement ondulé, mais je ne connais pas cette fonctionnalité dans aucun des terminaux que j'utilise. Et je suppose que ce terminal aura soit un soulignement ondulé au lieu de normal, soit ne sera pas pris en charge par vim sans correction manuelle.
ZyX
@ZyX: Je ne sais pas, je me demandais juste. Tous les miens le montrent ----aussi, mais il me semblait logique que le passage à squiggly impliquait simplement de remplacer -par ~, mais je pourrais me tromper.
abcd
1
@yoda: Je n'arrive pas où est ----montré? Les terminaux n'utilisent pas de symboles pour souligner (bien que vous puissiez toujours écrire le vôtre), ils interprètent simplement une séquence d'échappement particulière envoyée par vim comme «commencer la région soulignée» et une autre séquence comme «terminer la région soulignée» (ou même «effacer tout modes"). Ce qui est réellement montré est déterminé dans le code des terminaux, mais je suppose que la plupart d'entre eux ne font que transmettre des informations de style à la bibliothèque de rendu de polices. Rien ici n'empêche les terminaux de prendre en charge le soulignement ondulé, mais les bibliothèques de polices n'utilisent pas de symboles pour le soulignement.
ZyX