Я прошел через autocmd.txt
помощь, но информация об этом разбросана и не всегда присутствует (например, с BufRead
).
Может ли кто-то, кто хорошо понимает это, перечислить порядок этих событий - возможно, с условиями, отмеченными в параграфах, как
WinEnter
BufEnter (if this window is for a different buffer than the current)
и так далее, для удобства?
Примечание (скопировано из моего собственного комментария ниже) : я не говорю об отдельных объяснениях их, которые в порядке, а о том, как они взаимодействуют друг с другом и в каком порядке они происходят. Например, WinEnter
говорит: «Vim выполняет автокоманды BufEnter после автокоманд WinEnter», TabEnter
говорит «После запуска WinEnter и до запуска события BufEnter» все это разбросано по многим параметрам. А иногда это вообще не упоминается (например BufRead
, не упоминается, запускается ли он после BufEnter или раньше - возможно, эксперт может сделать вывод из какой-то другой информации, но я не могу.
Итак, мое намерение здесь состоит в том, чтобы создать единую простую ссылку на порядок этих событий, который может быть быстро найден неспециалистами,autocmd
технические характеристики события.
источник
WinEnter
говорит: «Vim выполняет автокоманды BufEnter после автокоманд WinEnter»,TabEnter
говорит «После запуска WinEnter и до запуска события BufEnter» все это разбросано по многим параметрам. И иногда это вообще не упоминается (напримерBufRead
, не упоминается, запускается ли он после BufEnter или раньше - может быть, эксперт может сделать вывод из какой-то другой информации, но я не могу.autocmd
спецификациях событий.Ответы:
Чтобы завершить ответ @sundar:
Вы можете регистрировать порядок событий просто с помощью функции регистрации:
Смотрите полный файл здесь: https://gist.github.com/nobe4/aa8313fe98ca8821afad
После этого
tail -f log
вы можете получать информацию о событиях автокоманд в реальном времени.источник
Я попытался найти это с разными наборами ключевых слов, и с одной попытки попытался получить такой результат: http://www.ibm.com/developerworks/library/l-vim-script-5/
В частности, эта часть относится к текущему вопросу:
Это все еще не полностью всесторонне (например, никакое упоминание
BufRead
akaBufReadPost
, но я предполагаю, что это прибудет послеBufReadCmd
), но это - превосходное начало.Одним из важнейших недостающая часть информации , хотя это , как
FileType
иSyntax
autocmd события взаимодействуют с этим (при условии ,filetype
иsyntax
уже дальше, и открыт новый файл , чей тип файла и синтаксис , как известно Vim).источник
autocmd
s в нескольких файлах не является четко определенным. И даже с одним файлом, порядок изменился несколько раз с версией Vim. Проблемы, которые это может (и делают) вызывать плагины, обсуждались до смерти на vim_dev, и общий дизайн не изменится в предсказуемом будущем. Что касается всестороннего понимания,apply_autocmds
в источниках Vim 7.4.827 есть 139 случаев . Удачи с этим.autocmd
В Vim беспорядок, я не думаю, что на самом деле можно написать точную ссылку, за исключением нескольких простых случаев. Я полагаю, что все просто соглашаются на «обычно работает» и пожимают плечами, когда это не так. Что касается неовима, лично у меня смешанные чувства по поводу проекта. Я не смотрел код недавно; Я полагаю, вы можете получить ответ на их вопрос трекера.