Как я могу остановить vim от автоматической загрузки файла синтаксиса для определенных типов файлов? - PullRequest
3 голосов
/ 20 июля 2010

Я работаю над проектом, пишущим фрагментный шейдер GLSL, и так получилось, что он имеет расширение .fs, поэтому vim автоматически загружает четвертый синтаксис при открытии файла.

Обычно это не проблема, я мог бы просто изменить синтаксис, используя au BufRead, но по какой-то причине сначала загружается четвертый синтаксис, который полностью запутывает.Он добавляет больше символов к слову, что приводит к тому, что подсветка синтаксиса и движения не работают должным образом.

Есть ли способ остановить загрузку четвертого синтаксиса и загрузить только мой указанный синтаксис?

Ответы [ 2 ]

6 голосов
/ 20 июля 2010

Создайте файл в каталоге .vim (или vimfiles в Windows) с именем 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 голосов
/ 20 июля 2010

Добавьте следующую строку в конец вашего файла синтаксиса:

let b:current_syntax = "<filetype>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...