2

Я пытаюсь использовать autocmd чтобы получить некоторые сопоставления конкретных файлов. Я следовал некоторым инструкциям онлайн и записал следующее в моем vimrc:

autocmd BufRead,BufNewFile special.txt (some mappings here)

Он отлично работает, когда я ввожу файл или создаю новый буфер с именем special.txt , но не когда я создаю пустой буфер (например, при запуске vim без аргумента) и сохраняю его с именем special.txt .

Даже простой echomsg не будет работать:

autocmd BufRead,BufNewFile special.txt echomsg test

и в истории сообщений нет текстового test .

Но в документации BufRead я вижу

Также вызывается для группы filetypedetect при выполнении «:filetype обнаружить» и при записи безымянного буфера таким образом, что буфер получает имя.

Когда я сохраняю пустой буфер с именем special.txt , буфер получает имя, и должен быть запущен BufRead . Но на самом деле это не так. Я что-то пропустил, или мне просто нужно использовать другое событие автокоманды?

И в случае, если это полезно, я использую версию vim для командной строки в пакете vim-gtk из репозитория Ubuntu.

1 ответ1

1

Вы должны интерпретировать текст справки следующим образом:

Также срабатывает [только] для группы filetypedetect, когда (выполняя «:filetype обнаружить» [или] при записи безымянного буфера таким образом, чтобы буфер получил имя).

Итак, этот работает:

:autocmd filetypedetect BufRead,BufNewFile special.txt echomsg "ftdetect test"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .