せっかくだから、俺はこの Unite + vim-ref を選ぶぜ!


101226-0001.png

FuzzyFinder がなんだか調子が悪い(Windows で、しかもネットワークドライブにおいていたのが原因?)。原因を探るのもめんどくさいので、この際 Unite に乗り換えてみた。

まずは何はなくとも設定から

手始めに以下のような設定にしてみた。

Shougo/unite.vim – Git Hub
https://github.com/Shougo/unite.vim

fuf → unite に乗り換えて1日目 – basyura’s blog
http://d.hatena.ne.jp/basyura/20100908/p1

unite の action にショートカットを設定する – 永遠に未完成
http://d.hatena.ne.jp/thinca/20101103/1288718347

unite.vim の設定を一部晒してみる
http://d.hatena.ne.jp/thinca/20101027/1288190498

unite の更新に併せて一部修正しました。
(→参照

" 入力モードで開始する
let g:unite_enable_start_insert=1
" バッファ一覧
noremap <C-P> :Unite buffer<CR>
" ファイル一覧
noremap <C-N> :Unite -buffer-name=file file<CR>
" 最近使ったファイルの一覧
noremap <C-Z> :Unite file_mru<CR>

" ウィンドウを分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
au FileType unite inoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
" ウィンドウを縦に分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
au FileType unite inoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
" ESCキーを2回押すと終了する
au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
" 初期設定関数を起動する
au FileType unite call s:unite_my_settings()
    function! s:unite_my_settings()
    " Overwrite settings.
endfunction

" 様々なショートカット
call unite#custom#substitute('file', '\$\w\+', '\=eval(submatch(0))', 200)
call unite#custom#substitute('file', '^@@', '\=fnamemodify(expand("#"), ":p:h")."/"', 2)
call unite#custom#substitute('file', '^@', '\=getcwd()."/*"', 1)
call unite#custom#substitute('file', '^;r', '\=$VIMRUNTIME."/"')
call unite#custom#substitute('file', '^\~', escape($HOME, '\'), -2)
call unite#custom#substitute('file', '\\\@<! ', '\\ ', -20)
call unite#custom#substitute('file', '\\ \@!', '/', -30)

if has('win32') || has('win64')
    call unite#custom#substitute('file', '^;p', 'C:/Program Files/')
    call unite#custom#substitute('file', '^;v', '~/vimfiles/')
else
    call unite#custom#substitute('file', '^;v', '~/.vim/')
endif

使い方

Ctrl + PCtrl + NCtrl + Z のどれかを押して起動(キーマッピングは色々変えてね。)

101223-0001.png

文字を打って候補を絞り込み、Ctrl + PCtrl + N、または、KJ で上下に移動する。

101223-0002.png

ファイル名の上で、Enter を押すと開く。代わりに、Ctrl + JCtrl + K を押すとウィンドウを分割して開いてくれる。

101223-0003.png

vim-ref と組み合わせてみる

基本的な使い方はこれくらいだが、プラグインを使うことで機能を様々に拡張できるのが Unite の特長だ。まだ自分でプラグインを開発できるところまでは行っていないので、以前紹介した vim-ref と連携させてみよう。

vim-ref で perldoc その他を読む | blog.remora.cx
http://blog.remora.cx/2010/11/read-perldoc-with-vim-ref.html

thinca/vim-ref – GitHub
https://github.com/thinca/vim-ref

unite で ref.vim の検索をする – 永遠に未完成
http://d.hatena.ne.jp/thinca/20101104/1288881308

vim-ref の最新バージョンは Unite と連携できるようになっている。次のコマンドで Unite 版 vim-ref が起動する。

:Unite ref/{source-name}

{source-name}perldoc を指定したところが下の図だ。う〜ん、これはスゴい。ますます便利になりました。

101223-0004.png

3 thoughts on “せっかくだから、俺はこの Unite + vim-ref を選ぶぜ!

  1. Pingback: Unite で set_substitute_pattern がなくなった件について | blog.remora.cx

  2. Pingback: 【unite.vim】set_substitute_pattern は衰退しました(その2) | blog.remora.cx

コメントを残す