vim - Vim 中的语法高亮冲突(使用关键字时)

标签 vim macvim vim-syntax-highlighting

我对 Vim 很陌生,有以下问题:

在我的 .gvimrc我定义了

syn keyword Todo PMID

突出显示每个 PMID在我编辑的文件中。只要没有对文件应用一般的语法突出显示(通过 setfautocmd BufRead,BufNewFile … ),这就会很好地工作

我的问题:如何维护一个突出显示的单个关键字列表,无论我编辑什么文件以及我对该文件使用哪种语法突出显示?

最佳答案

在这种情况下,匹配就派上用场了:

let s:kwreg='\v<%(PMID|OTHER|OTHER2)>'
let s:kwsyn='Todo'
augroup MyKeywords
    autocmd!
    autocmd WinEnter * if !exists('w:my_keyword_mnr') | 
                     \    let w:my_keyword_mnr=matchadd(s:kwsyn, s:kwreg) |
                     \ endif
augroup END
let s:curtab=tabpagenr()
for s:tab in range(1, tabpagenr('$'))
    execute 'tabnext' s:tab
    let s:curwin=winnr()
    for s:win in range(1, winnr('$'))
        execute s:win.'wincmd w'
        let w:my_keyword_mnr=matchadd(s:kwsyn, s:kwreg)
    endfor
    execute s:curwin.'wincmd w'
endfor
execute 'tabnext' s:curtab
unlet s:curtab s:curwin s:tab s:win

关于vim - Vim 中的语法高亮冲突(使用关键字时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656403/

相关文章:

vim - 设置 expandtab 时在 vim 中突出显示选项卡

vim - 如何关闭 YouCompleteMe 中的语法检查器?

python - MacVim 未加载 ftplugins

Vim Ultisnips - 如何移动到下一个占位符或制表符?

vim - 如何映射cmd+s来保存全部?

regex - Vim 正则表达式跳过定界符

vim - 如何将多个选项卡行粘贴到 Vi 中?

vim - 如何让 Vim 在使用 gf 时显示相同基本名称的替代文件路径列表?

vim - 禁用映射到 Ctrl-a 的良好 VIM 的数字增量

vim - Vim 中的子匹配语法高亮显示