pirosikick's diary

君のハートにunshift

jsdoc.vimでデフォルトじゃないキーにマップする

heavenshell/vim-jsdoc · GitHub

デフォルトだと<C-L>(Ctrl + l)にマップされているが、そのキーを既に<C-w><C-l>するのに使っていた。GithubのREADME.mdには書いてなかったから調べた。書いてたw

NeoBundle "heavenshell/vim-jsdoc"

~ 略 ~
" <C-P>にマップ
nmap <silent> <C-P> <Plug>(jsdoc)

ftplugin/javascript/jsdoc.vimにこんな感じで定義されている

if !exists('g:jsdoc_default_mapping')
  let g:jsdoc_default_mapping = 1
endif
nnoremap <silent> <buffer> <Plug>(jsdoc) :call jsdoc#insert()<CR>
if !hasmapto('<Plug>(jsdoc)') && g:jsdoc_default_mapping
  nmap <silent> <C-l> <Plug>(jsdoc)
endif

<Plug>ってのを初めて見たんだけど、ここに解説書いてる。 <Plug>は特殊なコードで絶対キーボードから入力できないようになっていて、とりあえず<Plug>ほげほげにマップしておき、ユーザがそこに対して任意のキーをmapできるようにしてる。(たぶん)

g:jsdoc_default_mapping使って下記のようにも書けると思う(この方法がREADME.mdに書いてる)

let g:jsdoc_default_mapping = 0
nnoremap <silent> <C-P> :JsDoc<CR>