Vim In-File Commands - PullRequest
       1

Vim In-File Commands

4 голосов
/ 16 июня 2011

Мне нужно средство, с помощью которого я могу добавить дополнительные команды в текстовый файл через vim.Например, как вы можете сделать что-то вроде этого:

# vim:syntax=foo

Я бы хотел сделать что-то вроде:

# vim:option call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

Есть идеи?Я знаю, что могу написать файл синтаксиса, но сейчас это не то, что мне нужно.

Ответы [ 2 ]

5 голосов
/ 16 июня 2011

Синтаксис модема Vim (см. :help modeline) не предназначен для указания команд, выполняемых при открытии файла.Именно для этого предназначены автокоманды (см. :help autocommand).То, что вы пытаетесь сделать, должно быть автокомандой, подобной следующей.

autocmd FileType foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

или

autocmd BufReadPost *.foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

(Здесь вместо *.foo вы можете использовать любой шаблон, который соответствует пути или имени файла(или оба) целевого файла.)

Если конфигурация, которую вы настраиваете, является локальной для некоторых файлов или проекта, и вы не хотите загрязнять свои .vimrc этими autocmd s, используйте плагин localvimrc .Это позволяет вам иметь «локальный» .vimrc файл рядом с вашим целевым файлом или папкой проекта.Сценарий, хранящийся в этом .lvimrc, выполняется, когда вы открываете файлы в том же каталоге, где находится «local» .vimrc, или в его подкаталогах.Автокоманды, показанные выше (или любые другие конфигурации), могут быть сохранены в файле .lvimrc локального проекта.Подробнее о конфигурации localvimrc см. Домашнюю страницу плагина.

1 голос
/ 18 июня 2011

Это не ответ на ваш вопрос, но я также искал Истину, и этот вопрос здесь самый близкий к нему:

Vim: Как выполнить выделенный текст как команды vim

Это не автоматический режим, но потенциально достаточно одного нажатия клавиши - достаточно близко. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...