我有一个 vim 自动命令组,如下所示:
augroup filetypedetect_wiki
au!
au! FileType vimwiki iabbrev cfo %% TODO {{{1<esc>hhhhhhhhveh
au! FileType vimwiki iabbrev cfc %% TODO }}}1<esc>hhhhhhhhveh
au! FileType vimwiki :set foldmethod=marker
au! FileType vimwiki :set spell
" Insert a comment block
au! FileType vimwiki iabbrev ccc {{{ ><cr> $ <cr>}}}<esc>kllllli
"===Wiki markup macros
au! FileType vimwiwki :nnoremap <leader>h1 ^i= <esc>A =<esc>^
au! FileType vimwiwki imap <leader>h1 <esc>^i= <esc>A =<esc>^
au! FileType vimwiwki nnoremap <leader>h2 ^i== <esc>A ==<esc>^
au! FileType vimwiwki imap <leader>h2 <esc>^i== <esc>A ==<esc>^
au! FileType vimwiwki nnoremap <leader>h3 ^i=== <esc>A ===<esc>^
au! FileType vimwiwki imap <leader>h3 <esc>^i=== <esc>A ===<esc>^
au! FileType vimwiwki nnoremap <leader>h4 ^i==== <esc>A ====<esc>^
au! FileType vimwiwki imap <leader>h4 <esc>^i==== <esc>A ====<esc>^
au! FileType vimwiwki nnoremap <leader>h5 ^i===== <esc>A =====<esc>^
au! FileType vimwiwki imap <leader>h5 <esc>^i===== <esc>A =====<esc>^
au! FileType vimwiwki nnoremap <leader>h6 ^i====== <esc>A ======<esc>^
au! FileType vimwiwki imap <leader>h6 <esc>^i====== <esc>A ======<esc>^
au! FileType vimwiwki nnoremap <leader>wm bi[[<esc>A]]<esc>
au! FileType vimwiwki imap <leader>h6 <esc>bi[[<esc>A]]<esc>
augroup END
但是,当我打开 vimwiki 文件时,我只能使用列表中的一个命令:
au! FileType vimwiki iabbrev ccc {{{ ><cr> $ <cr>}}}<esc>kllllli
今天,我尝试通过输入以下命令来查看有哪些可用内容:
:au FileType vimwiki
当我这样做时,我看到了这个:
:au FileType vimwiki
--- Auto-Commands ---
filetypedetect_wiki FileType
vimwiki iabbrev ccc {{{ ><cr> $ <cr>}}}<esc>kllllli
因此,这证实了我的怀疑:只加载了一个自动命令。但为什么会这样呢?是否有奇怪的字符破坏了该组?
答案1
au!
删除被定义为自动命令,因此我认为您在定义命令时不希望出现这种情况。尝试从除第一个之外的所有内容中删除感叹号,因此它看起来像这样:
augroup filetypedetect_wiki
au!
au FileType vimwiki iabbrev cfo %% TODO {{{1<esc>hhhhhhhhveh
au FileType vimwiki iabbrev cfc %% TODO }}}1<esc>hhhhhhhhveh