webdevqa.jp.net

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
spraff

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はそれを行う方法を教えてくれます。

これを行う1つの(モジュラー)方法は、次の内容で~/.vim/ftdetect/glsl.vimを作成することです。

au BufRead,BufNewFile *.glsl        set filetype=glsl

:filetype onにも:syntax on~/.vimrcが必要ですが、これらは非常に一般的な設定であるため、おそらくすでに設定されています。


[1]本当にマルチユーザーシステムがあり、システム全体で利用できるようにする必要がある場合は、'runtimepath'の別の場所に配置してください。ディストリビューションによっては、そのようなパスが事前に構成されている場合(たとえば、Debianの/etc/vim/vimrc)、またはシステム固有の構成を取得する機会(たとえば、/etc/vim/vimrc.local)があり、拡張することができます。 'runtimepath'あります。

0
Ingo Karkat