我有一个文件,名为WrongFileTypeDetection.R,其中包含以下文本:
# This file is sometimes wrongly detected as a conf file
我也有两个版本的_vimrc,我原以为它们完全相同。然而,当我使用第一个版本时,上述文件被错误地检测为“conf”文件,尽管我已经明确要求所有以.R结尾的文件都设置为filetype=r。当我改用第二个版本(将“syntax on”移动到augroup定义后面)时,检测再次正常工作。请注意,这是我唯一的配置(在调试期间,我移开了我的标准vimrc)。
第一个版本:
syntax on
augroup filetypedetect
autocmd! BufRead,BufNewFile *.r,*.R setfiletype r
augroup END
第二版:
augroup filetypedetect
autocmd! BufRead,BufNewFile *.r,*.R setfiletype r
augroup END
syntax on
看起来vimrc对这两个文件的特定顺序非常敏感。考虑到其中一行是一个autocommand,无论如何都会在较晚的时间运行,那么为什么会出现这种情况呢?这是Vim中的一个bug还是我没有理解的一个功能呢?
vim -D
进行了一些调试,以帮助确定在什么时间设置了什么。 - Rich:verbose set filetype?
来检查覆盖文件类型的内容。 - Rich