我是Vim的新手,有以下问题:
在我的.gvimrc
中,我定义了
syn keyword Todo PMID
突出显示我编辑的文件中的每个
PMID
。只要未对文件应用常规语法突出显示(通过setf
或autocmd 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