vim 未拾取新的语法文件

vim 未拾取新的语法文件

我复制了这个 GLSL 语法文件/usr/share/vim/vim74/syntax/glsl.vim,其权限-rw-r--r--与其他语法文件相同。

但是gvim /tmp/x.glsl它并没有像我预期的那样激活 GLSL 语法高亮。

我转到Syntax > Show fileypes in menu,所有可识别的语言都打开了。“GLSL”的“G”下没有任何内容,“OpenGL”的“O”下也没有任何内容。

我要做什么才能让 vim 注意到新的glsl.vim语法高亮规范?

答案1

行动Syntax > Show filetypes in menu来源$VIMRUNTIME/synmenu.vim。如果你打开那个,你会看到

  " The following menu items are generated by makemenu.vim.

因此,它似乎是在 Vim 构建时创建的静态内容。遗憾的是,它不会拾取添加的或用户特定的语法。

该目录/usr/share/vim/由发行版的包管理器管理。如果你将文件放在那里,当你重新安装或升级 Vim 时,它们可能会丢失。不要这样做。最直接的解决办法是将其放在 中~/.vim/syntax/;这样它就只适用于你。[1]

Vim 区分语法高亮文件类型。为了应用添加的语法,您需要检测 GLSL 文件。:help new-filetype告诉您如何操作。

实现此目的的一种(模块化)方法是使用~/.vim/ftdetect/glsl.vim以下内容创建:

au BufRead,BufNewFile *.glsl        set filetype=glsl

您也需要和:filetype on,但这些是非常常见的设置,因此您可能已经拥有它们了。:syntax on~/.vimrc


[1] 如果你确实有一个多用户系统,并且需要使其在整个系统范围内可用,请将其放在 上的其他位置'runtimepath'。 根据您的发行版,可能已经有这样的预配置路径(例如在/etc/vim/vimrcDebian 上),或者有机会获取系统特定的配置(例如/etc/vim/vimrc.local),您可以'runtimepath'在那里扩充。

相关内容