为什么不使用syntax-match plus highlight命令呢?

时间:2014-09-30 09:10:42

标签: vim

我想让Vim(现在是MacVim)突出显示非ASCII字符。根据{{​​3}}我将这两行添加到我的vimrc中:

syntax match nonascii "[^\x00-\x7F]"
highlight nonascii guifg=#ffffff guibg=#ff0000
" highlight link nonascii ErrorMsg     (this didn't work either)

我将一些包含正确单引号(hex 2019)的文本粘贴到HTML文件中。 Vim并没有强调它。

但是当我用以下内容替换上面的两行时,它起作用了:

syn match ErrorMsg /[^\x00-\x7F]/

为什么第一个版本不起作用?

编辑:进一步调查显示当我用我的文件打开vim时,两个版本都无效。但是当vim已经打开时,如果我手动执行它们,两者都有效。

2 个答案:

答案 0 :(得分:1)

您的解决方案仅适用于GUI(gvim);如果您从终端使用Vim,请添加ctermbg和/或ctermfb,例如:

highlight nonascii guifg=#ffffff guibg=#ff0000 ctermbg=red

答案 1 :(得分:1)

通过预先autocmd BufEnter *

,我能够让我的第二个版本正常工作
autocmd BufEnter * syn match ErrorMsg /[\x00-\x7F]/

这个想法来自this answer关于非特定于文件类型的语法突出显示。