Wie ändere ich den Hervorhebungsstil in der Rechtschreibprüfung von Vim?

90

Im Moment, wenn ich es :set spellin meinem Vim mache , werden Rechtschreibfehler hervorgehoben, als ob es sich um ausgewählten Text handelt. Was ich möchte, ist ein MS-Word-ähnliches Unterstreichen von Rechtschreibfehlern. Ich versuchte nachzuschlagen :help spell, konnte aber keinen Hinweis finden. Jede Hilfe wird geschätzt.

mkc
quelle

Antworten:

126

Rechtschreibfehler werden mithilfe der SpellBadHervorhebungsgruppe hervorgehoben. Um es hervorzuheben, wie Sie möchten, sollten Sie so etwas wie setzen

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

nach der letzten Zeile, die das Farbschema in Ihrem vimrc ändert (es ist entweder set background=(dark|light)oder colorscheme {schemename}).

Siehe auch :h hl-SpellBadNamen und Beschreibungen anderer Spell * -Highlight-Gruppen.

ZyX
quelle
1
Schlage mich dazu! Es ist auch erwähnenswert, dass undercurl("schnörkellose" Unterstreichung ähnlich wie bei ms word) die Standardeinstellung in gvim ist, obwohl es offensichtlich keine Möglichkeit gibt, eine "schnörkellose" Unterstreichung in einem Terminal vorzunehmen.
Joe Kington
23
Könnte nützlich sein, um auch eine Farbänderung zu haben, z :hi SpellBad cterm=underline ctermfg=red. Oder lassen Sie es unterstrichen und fett : :hi SpellBad cterm=underline,bold.
Herbert Sitz
@yoda Wo ersetzen? Es ist nicht unmöglich, ein X-Terminal zu erstellen, das eine schnörkellose Unterstreichung unterstützt, aber ich kenne diese Funktion in keinem der von mir verwendeten Terminals. Und ich denke, dieses Terminal hat entweder eine schnörkellose Unterstreichung anstelle von normal oder wird von vim ohne manuelles Patchen nicht unterstützt.
ZyX
@ ZyX: Ich weiß nicht, habe mich nur gefragt. Alle von mir zeigen es ----auch, aber es schien nur logisch, dass der Wechsel zu schnörkellos nur das Ersetzen -durch beinhalten sollte ~, aber ich könnte mich dort irren.
abcd
1
@yoda: Ich verstehe nicht, wo ----gezeigt wird? Terminals verwenden keine Symbole zum Unterstreichen (obwohl Sie immer Ihr eigenes schreiben können), sondern interpretieren nur eine bestimmte Escape-Sequenz, die von vim gesendet wird, als «unterstrichene Region starten» und eine andere Sequenz als «unterstrichene Region beenden» (oder sogar als «alle löschen« Stile »). Was tatsächlich angezeigt wird, wird im Code der Terminals festgelegt, aber ich denke, die meisten von ihnen übergeben nur Stilinformationen an die Bibliothek zum Rendern von Schriftarten. Nichts hier hindert Terminals daran, schnörkelloses Unterstreichen zu unterstützen, aber Schriftbibliotheken verwenden keine Symbole zum Unterstreichen.
ZyX