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