7

当有拼写错误(带有set spell)时,它会以红色突出显示(好!),但是当该行突出显示为我当前的行时,红色会消失(不好)。删除set cul解决了问题,但是如何在突出显示的同时保持标记为红色的单词?我可能在一行上拼错了多个单词,并且在键入时拼写错误被隐藏,直到我转到下一个有点糟糕的单词。

vimrc:https
://gist.github.com/OscarGodson/d1b05d52df4ff160b891 颜色方案:https ://github.com/tomasr/molokai

4

3 回答 3

6

1) 可以更改 vim 配色方案,或 SpellBad 高亮方案;第二种情况的一个例子是在 vimrc 中添加以下内容,

hi clear SpellBad
hi SpellBad cterm=bold

2)(不是解决方案)有人可能会发现“写作时进行拼写检查”有点烦人/分散注意力,并且更喜欢在写完文章之前关闭拼写检查。

于 2013-02-22T07:08:21.197 回答
2

问题是光标线突出显示优先于语法突出显示(拼写错误属于那个),并且无法更改。(您只能使用较新的matchadd()功能指定优先级。)

我曾经提出过这个问题突出显示错误,但没有任何结果。(我仍然想为那一天实施一个补丁。)

问题仅在于背景突出显示的重叠;在 GVIM 中,大多数配色方案使用undercurl属性来避免该问题。在控制台中,您只能将突出显示更改为前景色、斜体或粗体属性来解决它。

解决方法

一种巧妙的解决方法是在添加属性时交换前景色和背景色reverse:转动

hi SpellBad cterm=NONE ctermbg=red ctermfg=white

hi SpellBad cterm=reverse ctermbg=white ctermfg=red

这两个更改通常会相互抵消,但在 CursorLine 上,前景色现在有助于着色,将难以阅读的白色光标变为红色光标。

于 2013-02-22T08:13:36.487 回答
0

奇怪的是,从其他海报的两个答案中跳出来,在我的 vimrc 中添加以下内容使我的红色背景意外持续,因为我的终端无法完成“斜体”开关,因为它不能混合这样的字体类型(我认为)。我把它放在我的 vimrc 中为 gvim 测试的部分,因为 gvim 强调我的拼写错误没有问题。试试看!

if has("gui_running")
    #all my gvim settings
else #we're in terminal
    hi clear SpellBad
    hi SpellBad cterm=bold,italic ctermfg=red
endif
于 2014-04-14T18:03:43.853 回答