我有一个 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
所以这证实了我的怀疑,即只有一个自动命令被加载。但为什么会这样呢?有没有搞笑的角色在破团?
au!
删除是定义的自动命令,因此我认为您在定义命令时不需要这个。尝试从除第一个以外的所有内容中删除感叹号,因此它看起来像这样: