Vim中syntax enable与syntax on的区别及vimrc配置选择
syntax enable 与 syntax on 的区别及配置选择 两个命令的核心作用都是开启Vim语法高亮,唯一的差异是执行时对已有语法配置的处理逻辑:
syntax enable:仅加载默认语法脚本、开启高亮功能,不会重置运行命令前已经生效的自定义语法配置,包括自定义高亮组、语法规则覆盖、特殊文件类型的语法绑定等。syntax on:执行时会先自动运行syntax reset,把所有语法相关的设置全部重置为Vim出厂默认值,再加载语法脚本、开启高亮。如果你把自定义语法配置写在了这条命令之前,所有配置都会被清空覆盖,完全不生效。
vimrc配置推荐
普通用户优先写syntax enable,这也是现在大部分Vim配置模板的默认选择。
只有当你刻意要求每次启动Vim都强制使用默认语法规则、不保留任何之前加载的自定义语法设置时,才需要用syntax on。如果你坚持用syntax on,必须把所有和语法、高亮相关的自定义配置全部挪到这条命令的后面,不然写了也白写。
你看官方文档没感知到差异非常正常:大部分普通用户不会自定义语法规则,或者刚好把相关配置写在了syntax命令的后面,两个命令执行完的最终效果完全一致,自然用不出区别。你可以做个10秒的小测试验证差异:在vimrc最顶部加一句
hi Comment ctermfg=brightred(把注释颜色设为亮红色),如果这行下面写的是syntax on,重启Vim后注释还是默认颜色;换成syntax enable重启,就能立刻看到红色的注释,差异非常直观。
内容的提问来源于stack exchange,提问作者hobo-mts
相关产品推荐
相关产品推荐

