2010-07-20 60 views
3

我正在编写一个GLSL片段着色器的项目,它只是发生它具有文件扩展名.fs,因此vim会在打开文件时自动加载第四个语法。如何禁止vim自动为某些文件类型加载语法文件?

这通常不会有什么问题,我可以改变使用au BufRead语法,但由于某些原因,提出语法第一次加载,这完全弄乱的东西了。它将更多的字符添加到导致语法突出显示和动作无法按预期工作的“单词”中。

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

+0

如果你做手工':设置SYN = glsl',是否工作根据需要? – earl 2010-07-20 04:06:38

+0

nope,损坏已在文件加载后完成。我找到了改变的路线,我可以撤消它,但我希望找到更清晰的解决方案。 如果你有兴趣,它是'set iskeyword'。 – leafo 2010-07-20 04:22:11

回答

6

.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片段文件语法文件,可以更换ignored用适当的文件类型的名称。)

看到这些主题,详细信息:

:help remove-filetype 
:help new-filetype 
:help :setfiletype 
+0

谢谢,这个作品很棒。 – leafo 2010-07-22 05:14:20

0

以下行添加到你的语法文件的末尾:

let b:current_syntax = "<filetype>" 
相关问题