Назад | Перейти на главную страницу

Vim не отправляет все команды в группу автоматических команд

У меня есть группа автокоманд 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! удаления определены autocmds, поэтому я не думаю, что вы этого хотите при определении своих команд. Попробуйте убрать восклицательный знак со всего, кроме первого, чтобы он выглядел примерно так:

augroup filetypedetect_wiki
    au!
    au FileType vimwiki iabbrev cfo %% TODO {{{1<esc>hhhhhhhhveh
    au FileType vimwiki iabbrev cfc %% TODO }}}1<esc>hhhhhhhhveh