如何阻止vim为某些文件类型自动加载语法文件?

如何阻止vim为某些文件类型自动加载语法文件?,vim,Vim,我正在写一个GLSL片段着色器的项目,碰巧它的文件扩展名是.fs,因此vim会在打开文件时自动加载第四个语法 这通常是没有问题的,我可以使用au BufRead更改语法,但是由于某种原因,第四个语法首先被加载,这完全把事情搞砸了。它会在“单词”中添加更多字符,从而导致语法突出显示和动作无法按预期工作 有没有办法停止加载第四个语法,而只加载我指定的语法 在.vim目录(或Windows上的vimfiles目录)中创建一个名为filetype.vim的文件,并将此代码放入其中: if exists(

我正在写一个GLSL片段着色器的项目,碰巧它的文件扩展名是
.fs
,因此vim会在打开文件时自动加载第四个语法

这通常是没有问题的,我可以使用
au BufRead
更改语法,但是由于某种原因,第四个语法首先被加载,这完全把事情搞砸了。它会在“单词”中添加更多字符,从而导致语法突出显示和动作无法按预期工作


有没有办法停止加载第四个语法,而只加载我指定的语法

.vim
目录(或Windows上的
vimfiles
目录)中创建一个名为
filetype.vim
的文件,并将此代码放入其中:

if exists("did_load_filetypes")
    finish
endif

augroup filetypedetect

    " Ignore filetypes for *.fs files
    autocmd! BufNewFile,BufRead *.fs  setfiletype ignored

augroup END
这将在Vim的默认文件类型自动命令之前放置一个自定义文件类型检测脚本,因此您的检测自动命令有机会在通常的Vim脚本之前确定文件类型

重新启动Vim并尝试加载
.fs
文件后,它将不再使用Forth语法突出显示,并且
iskeyword
仍应设置为默认值。(如果已为GLSL片段文件安装了语法文件,则可以使用适当的文件类型名称替换
忽略的
。)

有关更多信息,请参见以下主题:

:help remove-filetype
:help new-filetype
:help :setfiletype

在语法文件末尾添加以下行:

let b:current_syntax = "<filetype>"
let b:current_syntax=“”

如果您手动执行
:set syn=glsl
,该操作是否正常?否,文件加载后已造成损坏。我找到了进行更改的线路,我可以撤销它,但我想找到一个更干净的解决方案。如果您感兴趣,可以使用
设置iskeyword