Можно ли добавить ключевое слово в модем 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), чтобы указать шаблон файла, который вы хотите сопоставить, и команду, которую вы хотите выполнить.

Другие вопросы по тегам