为什么vim会以不同方式突出显示此文件? 注
我使用的是本地vim插件,它允许我使用特定于项目的.vimrc文件,一般来说,它工作正常,正如您所期望的那样 背景 我使用Silverstripe,因此必须使用Silverstripe模板,这些模板是*.ss文件,但是默认情况下vim将*.ss分配给scheme文件。现在我只在一个项目中使用Silverstripe,并且一直在使用项目特定的.vimrc中设置的html文件类型来突出显示,但是在遇到一些错误之后,我想我应该在一个htmlss.vim文件中添加*.ss文件的突出显示(使用html.vim作为基础,我只是在接近结尾的地方添加了模板规则)。经过一点尝试和错误,我让它正常工作和突出显示,但我遇到了一个奇怪的错误 问题: 使用此project.vimrc:为什么vim会以不同方式突出显示此文件? 注,vim,Vim,我使用的是本地vim插件,它允许我使用特定于项目的.vimrc文件,一般来说,它工作正常,正如您所期望的那样 背景 我使用Silverstripe,因此必须使用Silverstripe模板,这些模板是*.ss文件,但是默认情况下vim将*.ss分配给scheme文件。现在我只在一个项目中使用Silverstripe,并且一直在使用项目特定的.vimrc中设置的html文件类型来突出显示,但是在遇到一些错误之后,我想我应该在一个htmlss.vim文件中添加*.ss文件的突出显示(使用html.v
augroup filetypedetect
autocmd! * *.ss
autocmd! BufEnter *.ss setf htmlss
augroup END
但是,使用以下命令,一切都可以正常工作。vimrc:
augroup filetypedetect
autocmd! * *.ss
autocmd! BufEnter,BufRead,BufNewFile *.ss setf htmlss
augroup END
语法高亮显示失败,它正确设置了文件类型,但高亮显示变得异常
我想我想知道为什么版本1可以工作,但是版本2不能,尽管没有其他改变
补遗
经过进一步调查,我发现删除autocmd!**。只有在我删除的情况下,ss才能使第二个有效代码>从autocmd!BufEnter、BufRead、BufNewFile*.ss setf htmlss
。i、 e
augroup filetypedetect
autocmd BufEnter,BufRead,BufNewFile *.ss setf htmlss
augroup END
工作但是
augroup filetypedetect
autocmd! BufEnter,BufRead,BufNewFile *.ss setf htmlss
augroup END
及
不要
同样,我的问题是为什么会出现这些差异,我现在有一个工作实现,所以我对任何调查都不感兴趣。我不需要解决方案,因为我没有问题。这可能是由于多次应用时语法文件与自身冲突造成的。syntax文件中的第一行可能是syntax enable
,它在不更改任何当前突出显示设置的情况下启用语法。Per:
因此,一个适当的“解决方案”应该是将语法文件中的语法启用
更改为语法启用
。是否使用autocmd命令设置颜色方案或任何突出显示选项?请尝试删除该文件!从第二个autocmd开始标记!声明,看看会发生什么…@Filip这不应该有什么区别。我建议首先完全删除:autocmd代码>相反(因为我不明白为什么需要它,而不是因为它应该干扰),首先使用第一个工作变量执行debug edit/path/to/file.ss
并尝试跟踪问题。或者,使用第二个工作变量执行set verbosefile=verbose.log verbose=15 | edit/path/to/file.ss | set verbose=0
(在verbosefile=
之后使用不同的名称)然后对这两个进行vimdiff
。我的问题不是它不起作用,我感兴趣的是为什么一个有效而另一个无效。这不是“我有问题”的问题,更多的是“我对这种行为感到好奇”问题。我自己没有时间追查原因。
augroup filetypedetect
autocmd! * *.ss
autocmd BufEnter,BufRead,BufNewFile *.ss setf htmlss
augroup END
The ":syntax enable" command will keep your current color settings. This
allows using ":highlight" commands to set your preferred colors before or
after using this command. If you want Vim to overrule your settings with the
defaults, use:
:syntax on