2014-09-30 29 views
1

我想獲得Vim(現在的MacVim)以突出顯示非ASCII字符。按照this answer我將這兩行我的vimrc:爲什麼syntax-match plus highlight命令不起作用?

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

而且我粘貼含有右單引號(十六進制2019)成HTML文件中的一些文字。 Vim沒有強調它。

但是,當我更換了兩行以上以下,它的工作:

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

爲什麼沒有第一個版本的工作?

編輯:進一步的調查顯示,當我打開VIM我的文件沒有版本的作品。但是,如果我在vim已經打開的情況下手動執行它們,這兩個工作都會起作用

回答

1

您的解決方案僅適用於圖形用戶界面(gvim);如果你使用的Vim從終端,增加ctermbg和/或ctermfb,例如:

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

謝謝,雖然我忘了提及這是在GUI(MacVim)中。我會更新我的問題。 – 2014-09-30 09:25:20

+0

@AndyStewart右...你原來的命令似乎在gVim的(Linux)的BTW工作,所以它可能是一個特定的MacVim-的事情嗎?) – Carpetsmoker 2014-09-30 09:26:37

+0

嗯,事實證明無論在啓動工作,但都工作當我執行手動。 – 2014-09-30 09:29:22

1

我能得到我的第二個版本,通過預先autocmd BufEnter *工作:

autocmd BufEnter * syn match ErrorMsg /[\x00-\x7F]/ 

這個想法從this answer關於非文件類型特定的語法突出顯示。

+0

謝謝。這也適用於我自定義突出顯示特定的正則表達式模式,但我希望有一個更清晰的解決方案。 – 2017-07-05 19:08:29

相關問題