Vaffleとquickhlのキーマップが競合していたので直す

dein.vimを導入quickhl の記事で vim に Vaffle と quickhl というプラグインを導入しました。

Vaffle はシンプルなファイラーで quickhl は単語単位の複数ハイライトを可能にするプラグインです。

どちらもとても便利なのですが、 Vaffle はファイル選択にスペースキーを、 quickhl は単語選択に スペース + m キーを使用するため、Vaffle使用時に vim が m の入力待機をしてしまっていました。

このままではいかんので直します。

以下のコードを ~/.vimrc に追記しました。

" quickhl keymap
let g:is_quickhl_keymap_enable = 0
function! EnableQuickhlKeymap()
    if g:is_quickhl_keymap_enable
        return
    endif
    let g:is_quickhl_keymap_enable = 1
    nmap <Space>m <Plug>(quickhl-manual-this)
    xmap <Space>m <Plug>(quickhl-manual-this)
    nmap <Space>M <Plug>(quickhl-manual-reset)
    xmap <Space>M <Plug>(quickhl-manual-reset)
endfunction
function! DisableQuickhlKeymap()
    if !g:is_quickhl_keymap_enable
        return
    endif
    let g:is_quickhl_keymap_enable = 0
    nunmap <Space>m
    xunmap <Space>m
    nunmap <Space>M
    xunmap <Space>M
endfunction
function! UpdateQuickhlKeymap()
    if &filetype == 'vaffle'
        call DisableQuickhlKeymap()
    else
        call EnableQuickhlKeymap()
    endif
endfunction
" prevent conflicts with vaffle
autocmd Filetype * call UpdateQuickhlKeymap()
autocmd BufEnter * call UpdateQuickhlKeymap()
" set quickhl keymap
call EnableQuickhlKeymap()