Vim取消高亮(非搜索高亮)

4
这是vim编辑.bash_profile的屏幕截图。它似乎使用了一些奇怪的高亮,我没有明确打开(例如,在GaF周围)。
使用nohl无效,因为我没有启动搜索。我还尝试使用'syntax off',但这只是使所有字体/文本颜色变白,但高亮仍然存在。
有人知道这是什么,或者如何关闭它吗?
谢谢

你使用的是什么配色方案? - FDinoff
@FDinoff,默认颜色方案 - snowbound
1
我发现Vim中的颜色是由于拼写检查器引起的。可以通过:set nospell来禁用它。 - snowbound
@snowbound 这应该是一个回答。 - SalmonKiller
4个回答

7

移除所有的高亮。

hi clear

你可以找到组名和
hi clear group

禁用一个组的高亮显示


在尝试无果地识别有问题的语法组后,我在一个Markdown文档中使用它非常完美。 - Darren Lewis
需要注意的是,不要将语法组高亮组混淆。根据语言的不同,语法组可能会非常庞大,但每个语法组都将通过hi def link <syntaxGroup> <highlightGroup>与一个高亮组链接。它们链接到的高亮组在大多数语言中都是通用的,例如Normal、Cursor、Comment、Identifier等。 - Seldom 'Where's Monica' Needy
2
简而言之:hi clear <syntaxGroup> 不会有任何作用,而 hi clear <highlightGroup> 则可以在任何上下文中使用。 - Seldom 'Where's Monica' Needy

5
你需要找出导致高亮的语法组。使用:syn list显示所有活动组,但安装SyntaxAttr.vim - 显示光标下字符的语法高亮属性插件会更加简单。当你知道有问题的语法组的名称后,你可以看到它链接到哪个高亮组。然后检查你的颜色方案以获取其定义:
:highlight <groupname>

谢谢您的建议。我已经安装了SyntaxAttr.vim插件。它发现'ls'下的高亮是shDoubleQuote,这导致了常量Constant的高亮。我清除了'Constant'的高亮,但它只是把文本变成了白色。SyntaxAttr插件效果:http://imgur.com/VtFjaip,2wzWDoR#1hi clear之后的效果:http://imgur.com/VtFjaip,2wzWDoR#0 - snowbound

0
对我来说,每次打开任何命令的 help 窗口时都会出现这样的问题。正如用户 @snowbound 在评论中所说,执行 :set nospell 可以解决这个问题。

0

我想对肯特和英戈·卡卡特的回答进行扩展,以供那些不希望安装插件的人使用。

要找出问题中高亮组的名称,您可以使用以下内容:

" call `:exec SynGroup()` to show the highlight group under the cursor
function! SynGroup()
  let l:s = synID(line('.'), col('.'), 1)
  echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name')
endfun

我的vimscript很糟糕,我很久以前从互联网上复制了这个。感谢那个人。

无论如何,正如Kent所说,你可以使用

hi clear <group>

禁用该组的高亮显示。

例如,在vimscript注释中使用:exec SynGroup()会给你

vimLineComment -> Comment

然后您可以使用

hi clear Comment

去除高亮显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接