я собрал следующую кучу удивительности:autocmd функция всегда выполняется дважды
if !exists("g:AsciidocAutoSave")
let g:AsciidocAutoSave = 0
endif
fun! AsciidocRefresh()
if g:AsciidocAutoSave == 1
execute 'write'
execute 'silent !asciidoc -b html5 -a icons "%"'
endif
endf
fun! AsciidocFocusLost()
augroup asciidocFocusLost
autocmd FocusLost <buffer> call AsciidocRefresh()
augroup END
endfun
augroup asciidocFileType
autocmd FileType asciidoc :call AsciidocFocusLost()
augroup END
Единственная проблема заключается в: Это экономит дважды каждый раз ВИМ теряет фокус, когда в asciidoc
файле.
Когда я поставил :autocmd asciidocFileType
в командной строке, он показывает:
---Auto-Commands---
asciidocFileType FileType
asciidoc :call AsciidocFocusLost()
:call AsciidocFocusLost()
То же самое с :autocmd asciidocFocusLost
и AsciidocRefresh()
.
Почему это дублирование?
Спасибо. Тем временем я нашел трюк с «!», Сделав даже группы ненужными. Но я думаю, что я не единственный, у кого есть аналогичная проблема, поэтому вопрос не является абсолютно ненужным. – Profpatsch
С '!', Augroups важны; в противном случае вы можете очистить другие, одинаковые события + шаблоны autocmds (из других плагинов) тоже! ': Augroup 'ограничивает очистку вашей собственной группой. –
А, ладно. Благодарю. – Profpatsch