VimからDash.appを呼び出す

様々なプログラミング言語のリファレンスを素早く検索できる Dash というアプリがあります。

特に iOS 開発には欠かせないツールで、僕は Dash-Plugin-for-Xcode というプラグインを使って Xcode からサクッと呼び出すのがお気に入りです。

Vim からも同じ感覚で Dash を呼び出したいなと思っていたところ、Qiita でこんな投稿を見つけました。

コマンドラインやvimから言語を指定してDash.appを呼び出す

この投稿で紹介されているコードを使うことで、:Dash <keyword>、または :Dash <Enter> の後に検索キーワードを入力することで検索できるようになります。
FileType も自動的に入力されてとても便利です。

ですが、僕としてはコマンドを入力するのも面倒なので、カーソルの位置にある単語を検索するようにコードを変更してみました。

" Dash.app連携
function! s:dash(...)
    if len(a:000) == 1 && len(a:1) == 0
        echomsg 'No keyword'
    else
        let ft = &filetype
        if &filetype == 'python'
            let ft = ft.'2'
        endif
        let ft = ft.':'
        let word = len(a:000) == 0 ? input('Keyword: ', ft.expand('<cword>')) : ft.join(a:000, ' ')
        call system(printf("open dash://'%s'", word))
    endif
endfunction

command! -nargs=* Dash call <SID>dash(<f-args>)

nnoremap <Leader>d :call <SID>dash(expand('<cword>'))<CR>

これで <Leader>d とすると、カーソル位置の単語をキーワードとしてDashで検索できます。

便利だ・・・