Pro*_*sch 6 vim duplication 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
Run Code Online (Sandbox Code Playgroud)
唯一的问题是:每次 vim 在asciidoc文件中失去焦点时,它都会保存两次。
当我输入:autocmd asciidocFileType命令行时,它显示:
---Auto-Commands---
asciidocFileType FileType
asciidoc :call AsciidocFocusLost()
:call AsciidocFocusLost()
Run Code Online (Sandbox Code Playgroud)
:autocmd asciidocFocusLost与相同AsciidocRefresh()。
为什么要重复?
我无法确定为什么你会得到这些重复项(多个来源?),但防止这种情况的规范方法是清除第augroup一个:
augroup asciidocFileType
autocmd!
autocmd FileType asciidoc :call AsciidocFocusLost()
augroup END
Run Code Online (Sandbox Code Playgroud)
由于您只有一个定义,因此您也可以通过一个命令来执行此操作:
augroup asciidocFileType
autocmd! FileType asciidoc :call AsciidocFocusLost()
augroup END
Run Code Online (Sandbox Code Playgroud)