👏
ddu.vim でファイルを開くときに tab drop で開く
かなり苦労して設定したので覚書。
最終的に出来上がったもの自体は簡素なんだけどね…。
あ、前提として ddu-kind-file
に対する設定となります。
# tab drop 用の kind の action を定義する
function! s:open_tabdrop(items) abort
for item in a:items
let filepath = item["action"]["path"]
execute "tab drop" filepath
endfor
endfunction
call ddu#custom#action('kind', 'file', 'tabdrop',
\ { args -> s:open_tabdrop(args["items"]) })
# ddu 用のキーマッピングを設定する場合
augroup my_ddu
autocmd!
autocmd FileType ddu-ff call s:ddu_my_settings()
augroup END
function! s:ddu_my_settings() abort
# tabdrop アクションを呼び出す設定
nnoremap <buffer><silent> t
\ <Cmd>call ddu#ui#do_action('itemAction', #{ name: "tabdrop" })<CR>
endfunction
ddu-kind-file
に依存せずに単純に ddu#ui#do_action
経由画 tab drop
を呼び出す場合は以下のようにも呼び出せます。
# ddu 用のキーマッピングを設定する場合
augroup my_ddu
autocmd!
autocmd FileType ddu-ff call s:ddu_my_settings()
augroup END
function! s:ddu_my_settings() abort
# ddu#ui#do_action 経由で任意の Vim コマンドを呼び出す
nnoremap <buffer><silent> t
\ <Cmd>call ddu#ui#do_action('itemAction', {'params': {'command': 'tab drop'}})<CR>
endfunction
ただ、この場合だとキー入力してからコマンドが実行されるまでに若干タイムラグがある?ぽい?ので気になります。
ddu.vim(に限らないんですが…)設定の仕方が複雑過ぎるので ちゃんと保守されている設定の仕方の一覧 みたいなのがほしいですねー。
help 見るだけだと絶対にたどり着けなかった…。
Discussion