我复制了这个 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/vimrc
Debian 上),或者有机会获取系统特定的配置(例如/etc/vim/vimrc.local
),您可以'runtimepath'
在那里扩充。