Можно ли добавить ключевое слово в модем VIM
Например, мой файл выглядит так:
#! /bin/bash
verbose()
{
[ "$VERBOSE_FLAG" == 'yes' ] &&
{
[ $# == 0 ] || echo $@
return 0
} || return 1
}
verbose display in verbose mode
# make verbose highlight as a keyword
# vim: syntax keyword Keyword verbose
Возможно ли использовать syn в моделине или есть альтернативный способ?
2 ответа
Вы не можете сделать это напрямую; только (локально для буфера) опции могут быть установлены в моделине.
Опция 1
Если это дополнительное ключевое слово не является особенным для одного файла, но применяется к широкому диапазону файлов, я бы определил пользовательский тип файла (например, mybash
), и добавьте это дополнительное ключевое слово в ~/.vim/syntax/mybash.vim
:
" mybash is a kind of shell syntax
runtime! syntax/sh.vim syntax/sh/*.vim
" Add keyword.
syntax keyword mybashKeyword verbose
Чтобы использовать этот пользовательский синтаксис, вы должны либо дополнить правила обнаружения типов файлов по умолчанию, либо включить ft=mybash
в моделине.
вариант 2
Если это всего лишь небольшая настройка для одного или нескольких файлов, я бы использовал локальный плагин vimrc для добавления ключевого слова.
На vim.org есть несколько таких плагинов; Я могу порекомендовать плагин localrc, который даже разрешает локальную настройку файлового типа.
Vine Modelines используются для установки различных VIM options
(увидеть :help modeline
а также :help options.txt
). Поскольку подсветка синтаксиса является командой, а не опцией, ее нельзя указать через моделину. Однако вы можете установить подсветку синтаксиса для конкретного имени файла, типа файла, каталога и т. Д. Просто используйте автокоманду (см. :help au
), чтобы указать шаблон файла, который вы хотите сопоставить, и команду, которую вы хотите выполнить.