【问题标题】:How to change the color of highlighted misspelled word?如何更改突出显示的拼写错误单词的颜色?
【发布时间】:2012-07-02 00:40:33
【问题描述】:

在我用于 vim 的主题中,字符串显示为红色,但问题是我打开了拼写检查,拼写错误的单词也显示为红色。

这使得在你找到那个单词并删除任何字符之前很难看出是什么错误。

我想让拼写错误的单词的突出显示比现在更轻。说#ff2929。

                                                    

【问题讨论】:

  • 很久以前,当我发布这个问题时,我为我的 shell 找到了 solarized colourscheme。
  • 我自己用的是solarized,试试highlight Pmenu ctermbg=darkred ctermfg=white guibg=black gui=bold看看能不能解决问题。当然,根据here设置背景颜色

标签: vim spell-checking


【解决方案1】:

试试这个:

 :hi SpellBad guibg=#ff2929 ctermbg=224
  • guibg 用于图形用户界面
  • ctermbg 用于 TERM

【讨论】:

  • 我在 gnome-terminal 中使用 vi,当我在做 :hi SpellBad guibg=#ff2929 和附加 ctermbg=224 时没有任何工作我认为拼写检查不起作用(没有突出显示任何单词,甚至拼写错误!)
【解决方案2】:

您可以在~/.vimrc 中使用hi:help highlight 的缩写)命令。大体结构是:

hi SpellBad    ctermfg=015      ctermbg=000     cterm=none      guifg=#FFFFFF   guibg=#000000   gui=none

cterm 用于终端 vim,gui 用于 gVim。 fg 代表前景,是字母的颜色,bg 代表背景,是字母背后的颜色。

对于标准终端颜色(8 种正常和 8 种明亮),终端颜色可以是 0-15,对于支持 256 种颜色的术语,终端颜色可以是 0-255,例如 xterm-256colors。 gui 颜色采用十六进制格式。 xterm-color-table 是 256 和十六进制颜色的有用参考。最后一个选项可用于指定 bolditalic 或 none(两者都不)。

在您的情况下,将前景设置为黑色以使字母突出可能是最简单的。首先,找到一个拼写错误的单词:set spell,然后输入 asdflkjasldf 之类的。然后输入:hi SpellBad ctermfg=000 guifg=#000 看看这是不是你喜欢的解决方案。如果没有,请使用 xterm-color-table 或其他颜色参考来找到您喜欢的颜色。

【讨论】:

  • 值得注意的是,这并没有完全探索可用的选项; :help highlight 有更多,包括完全任意的转义码。
  • 以上示例应使用完整的 6 位十六进制。我发现上述方法仅在例如我执行以下操作时才有效:
【解决方案3】:

对于一个涉及colorscheme 的更复杂的示例,我发现以下内容已经完成了一半,但它对 .vimrc 命令的顺序很敏感。我用 Cygwin/mintty 和 Git Bash、vim 8.0 进行了测试,结果相似。我在标题和段落中编辑了一个带有“拼写错误”的单词的降价文件,因此另一个因素是 vim 为降价所做的自动格式化。如果 .vimrc 的顺序是spellcolorscheme,然后是hi(尝试在红色背景上使用白色文本),则拼写错误的单词的结果是黑色背景上的白色前景(下图),无论是否在降价标题或段落。这没关系,但我希望拼错单词的背景更醒目,这就是我指定红色背景的原因。

但是,如果顺序是 spellhicolorscheme,则结果在段落中是正常的,但在标题中出现不希望的粉红色红色(下图)。这实际上是没有hi 的原始行为,这是有道理的,因为colorscheme 可能踩到了hi 设置。根据其他测试,hicolorscheme 的相对位置很重要。

我想我会选择第一个选项,因为至少高光似乎在所有内容中,但如果使用红色背景会很好。以下是第一种情况的 .vimrc 行。任何解决此问题的指导将不胜感激。

" Turn on spell-checker
set spell

" Color scheme
" To pick from available list do:
" :colorscheme _space_ Tab
" Reasonable options seem to be:  koehler, murphy, elford
colorscheme koehler

" Using the colorscheme with spellchecking results in highlights with
" pink text on red background, which is hard to read, so change the highlight color.
" Color table:  https://github.com/guns/xterm-color-table.vim
" Use white text on red background for misspelled words.
hi SpellBad ctermfg=015 ctermbg=009 cterm=bold guibg=#ff0000 guifg=#000000 gui=bold

【讨论】:

  • 您可以在 ColorScheme 事件上使用自动命令来(做任何事情,但也可以)在颜色方案更改时更改高光。这样做的好处是您可以以一种方式和另一种方式更改一些配色方案。
猜你喜欢
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
相关资源
最近更新 更多