私は次の素晴らしい山をまとめました:
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
唯一の問題は、ファイル内で vim がフォーカスを失うたびに 2 回保存されることです。
:autocmd asciidocFileType
コマンドラインに入力すると、次のように表示されます。
---Auto-Commands---
asciidocFileType FileType
asciidoc :call AsciidocFocusLost()
:call AsciidocFocusLost()
:autocmd asciidocFocusLost
とも同様AsciidocRefresh()
です。
なぜこの重複?