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

lea*_*afo 3 vim

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

这通常没有问题,我可以只使用更改语法au BufRead但由于某种原因首先加载第四个语法,这完全搞砸了.它为"单词"添加了更多字符,导致语法高亮和运动无法按预期工作.

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

Bil*_*dom 6

在您的.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)