我正在编写一个自定义gvim语法文件,并且关键字的数量很大(大约1000个),所以在.vim语法文件中有任何简单的处理方式......
可能就像在一个文件中添加所有关键字一样,并要求vim将该文件中的所有内容视为关键字,
我有一个mytype.vim文件,其中包含不同的规则集,我不确定在那里添加1000个关键字是个好主意。
欢迎任何其他解决方案或建议:)
答案 0 :(得分:1)
您可以将关键字列表传递给:syntax keyword
命令。摘录自$VIMRUNTIME/syntax/vim.vim
:
syn关键字vimCommand包含arga [dd] ar [gs] bar bn [ext] breaka [dd] bu bw [ipeout] caddf [ile] cd cgete [xpr] checkt [ime] cmdname cnf com con [tinue] cq [uit] cw [indow] delc [ommand] diffg [et] diffpu [t] dig [raphs] dr [op] previous el [se] endfo [r] ene [w] filename fin [d] folddoc [losed] fu [nction] gui helpg [rep] ia in j [oin] kee [pmarks] laddf [ile] lb [uffer] le [ft] lgetb [uffer] l [ist] lN lNf lo [adview] lpf [ile] luado mak [e] menut [ranslate] mks [ession] mod [e] n在[ly] pc上的新noautocmd [lost] popu p [rint] promptr [epl] ptn pts [elect] py [thon] quote redi [r] res [ize] ru rv [iminfo] sbf [irst] sbr [ewind] scscope sfir [st] sim [alt] sme snoreme spe spellw [rong] star st [op] sunmenu syn ta tabf [ind] tabnew tabr [ewind] tcld [o] tj [ump] tN tp [revious] tu u [ndo] unlo [ckvar] verb [ose] vim [grep] vne [w] win wn [ext] w [rite] xa [ll] XMLent xunme < / p>
所以,开销很小,我会建议那样。
当然,您可以使用Vim元编程,即从文件(via readfile()
)/ List中读取关键字并动态构建:syntax keyword
命令,但只有在您有实际需要时才能执行此操作(例如,当关键字因语言版本而异时):
for keyword in ['foo', 'bar', 'baz']
execute 'syntax keyword' keyword
endfor
关键字的解析开销小于匹配或区域的解析开销,因此(几个)千元关键字应该由Vim处理得很好。