在vim中突出显示行时隐藏拼写错误

时间:2013-02-21 21:58:25

标签: vim

当出现拼写错误(set spell)时,它突出显示为红色(好!),但当该行突出显示为当前行时,红色消失(坏)。删除set cul可以解决问题,但如何在突出显示时将单词标记为红色?我可能会在一条线上拼错多个单词,并且在输入拼写错误时也会隐藏,直到我转到下一个有点糟糕的情况。

vimrc:https://gist.github.com/OscarGodson/d1b05d52df4ff160b891
colorscheme:https://github.com/tomasr/molokai

3 个答案:

答案 0 :(得分:5)

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

hi clear SpellBad
hi SpellBad cterm=bold

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

答案 1 :(得分:1)

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

我曾经raised this issue for error highlighting,但没有任何结果。 (我仍然想在那一天实施补丁。)

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

答案 2 :(得分: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