我正在编写一个编写GLSL片段着色器的项目,它恰好具有文件扩展名.fs,因此vim会在打开文件时自动加载第四种语法.
这通常没有问题,我可以只使用更改语法au BufRead但由于某种原因首先加载第四个语法,这完全搞砸了.它为"单词"添加了更多字符,导致语法高亮和运动无法按预期工作.
有没有办法阻止加载第四个语法,只加载我指定的语法?
在您的.vim目录(或vimfilesWindows上的目录)中创建一个文件,filetype.vim并将此代码放入其中:
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
" Ignore filetypes for *.fs files
autocmd! BufNewFile,BufRead *.fs setfiletype ignored
augroup END
Run Code Online (Sandbox Code Playgroud)
这会将自定义文件类型检测脚本置于Vim的默认文件类型自动命令之前,因此您的检测自动命令有机会在通常的Vim脚本之前确定文件类型.
一旦重新启动Vim并尝试加载.fs文件,它就不应再使用Forth语法高亮显示,并且iskeyword仍应设置为默认值.(如果已为GLSL片段文件安装了语法文件,则可以ignored使用相应的文件类型名称替换它.)
有关更多信息,请参阅以下主题
:help remove-filetype
:help new-filetype
:help :setfiletype
Run Code Online (Sandbox Code Playgroud)