几乎每个VIM colorscheme都有这个片段:
if exists("syntax_on")
syntax reset
endif
这也被列为“推荐”的东西,可以在各种教程等中加入colorschemes。
然而,我已经尝试了相当多的区别,只是一个简单的:
syntax reset
我找不到任何区别。如果启用了语法,则此命令正确执行通常的语法重置魔术,但如果语法关闭,则它似乎没有任何效果,或者给出任何错误。更重要的是,阅读VIM手册关于语法高亮和颜色方案的整个部分,如果没有设置“syntax_on”,我看不出任何原因,为什么普通的,无人看守的syntax reset
会有害。
如果确实如此,if exists("syntax_on")
后卫的目的是什么?是因为以前版本的VIM曾经需要它,但至少7.3不再需要它吗?或者是否有一些我遗漏的微妙角落?
答案 0 :(得分:3)
如果未定义syntax_on
,我们无需运行syntax reset
,它与以下内容相同:
g:syntax_cmd = 'reset'
runtime! syntax/syncolor.vim
它使vim
更快。