unite.vim で set_substitute_pattern がなくなった件について

このメソッドがなくなったのは結構インパクトがあったみたいで、一日にして更新されてこの記事も必要なくなってしまいました。せっかくなので残しておきますが、こちらの解決法がずっとスマートです。

Unite をアップデートすると今まで使ってた設定でエラーが出るようになってしまいました。調べてみると、deprecated な(?)一部のメソッドが削除されてしまったようです。

せっかくだから、俺はこの Unite + vim-ref を選ぶぜ! | blog.delphinus.dev
https://blog.delphinus.dev/2010/12/vim-ref-with-unite.html

上記記事に書いた以下の部分を、

" 様々なショートカット
call unite#set_substitute_pattern('file', '\$\w\+', '\=eval(submatch(0))', 200)
call unite#set_substitute_pattern('file', '^@@', '\=fnamemodify(expand("#"), ":p:h")."/"', 2)
call unite#set_substitute_pattern('file', '^@', '\=getcwd()."/*"', 1)
call unite#set_substitute_pattern('file', '^;r', '\=$VIMRUNTIME."/"')
call unite#set_substitute_pattern('file', '^\~', escape($HOME, '\'), -2)
call unite#set_substitute_pattern('file', '\\\@<! ', '\\ ', -20)
call unite#set_substitute_pattern('file', '\\ \@!', '/', -30)
 
if has('win32') || has('win64')
    call unite#set_substitute_pattern('file', '^;p', 'C:/Program Files/')
    call unite#set_substitute_pattern('file', '^;v', '~/vimfiles/')
else
    call unite#set_substitute_pattern('file', '^;v', '~/.vim/')
endif

以下のように修正してください。

Continue reading

Vim でタイル型ウィンドウマネージャ その2

前回紹介しました dwm.vim を使うときに更に便利なプラグインが作成されていたのでご紹介。

Vim – dwm.vim用にuntie-dwmプラグインを作った – ぼっち勉強会
http://kannokanno.hatenablog.com/entry/2013/05/30/140838

これに併せて Unite の設定も以下のように変えました。

noremap zp :Unite buffer_tab file_mru<CR>
noremap zn :UniteWithBufferDir -buffer-name=files file file/new<CR>
noremap zd :Unite dwm<CR>

autocmd FileType unite call s:unite_my_settings()

function! s:unite_my_settings()
    " 上下に分割して開く
    nnoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
    inoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
    " 左右に分割して開く
    nnoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
    inoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
    " タブで開く
    nnoremap <silent> <buffer> <expr> <C-T> unite#do_action('tabopen')
    inoremap <silent> <buffer> <expr> <C-T> unite#do_action('tabopen')
    " vimfiler で開く
    nnoremap <silent> <buffer> <expr> <C-O> unite#do_action('vimfiler')
    inoremap <silent> <buffer> <expr> <C-O> unite#do_action('vimfiler')
    " dwm.vim で開く
    nnoremap <silent> <buffer> <expr> <C-N> unite#do_action('dwm_new')
    inoremap <silent> <buffer> <expr> <C-N> unite#do_action('dwm_new')
    " 終了
    nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
    inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
endfunction

今までは Ctrl + N を押してから znzp で Unite を開いていたのですが、Unite ウィンドウで Ctrl+ N しても同様のことができるようになりました。

【Vim】タイル型ウィンドウマネージャでタブいらず

4 日連続で Powerline の記事ばっかりだったので、ちょっと別の話を。

タイル型ウィンドウマネージャという概念を知りました。作業中は常に画面全部をウィンドウで埋め、複数のアプリケーションを開いた状態での一覧性を重視したウィンドウマネージャです。Windows ならば Aero スナップ1を使うことでこれに近いことが出来ます。

vim というエディタはそもそもこの タイル型方式 です。複数のファイルを開くときは画面を分割して行き来するか、 バッファー という形で画面の裏側にたまってきます。そもそもタブ機能なんてのは後から加えられたものでした。

vim でタイル型ウィンドウマネージャを実現する dwm.vim

dwm.vim はタイル型ウィンドウマネージャとして著名な Dwm にインスパイアされたプラグインです。百聞は一見にしかず、使っているところを動画に撮ってみました。

Continue reading

Powerline が重いとか都市伝説を信じてる奴ってまだいるの?(5日目 powerline-daemon 編)

Powerline についての記事、これで 5 つ連続してますね。

題名はホッテントリメーカーです。イヤいるんですけどね、僕とか。

前回やたらとセグメントを追加したおかげで、動作がもっさりしてきたかもしれません。というか僕がそうでした。そういう方は第 2 回に名前だけ紹介した powerline-daemon の利用を検討してみましょう。

Continue reading

Powerline に○○が表示されない? なら作ればいいじゃない(4日目 tmux 編)

前回前々回に引き続き、今回は tmux のステータスラインにセグメントを追加してみます。

全ては例によって .config/powerline に上げておりますので、完全なものはそちらを参照してください。

前々回挙げたものと同じですが、こんな感じに作りました。

iTerm2 + tmux + vim + Powerline

iTerm2 + tmux + vim + Powerline

Continue reading

Powerline を最新の Unite に対応させる(3日目 local_themes 追加編)

Powerline 解説記事 3 つ目です。意外と続きますね。

みんな大好き Unite ですが、最近大きな修正があり、情報がステータスラインに表示されるようになりました。

見やすくはなったんですが、これは Powerline のようにステータスラインを書き換えるプラグインとバッティングしてしまうんですね。

今回は Powerline の local_themes という機能を使ってこれに対応してみます。以下のような表示が出来れば成功です。

Unite ウィンドウの例

Unite ウィンドウの例

ただ……、この記事書いてから気付いたんですが、この件に関する修正は既に pull request されています。追っ付けメインブランチにもマージされるでしょう。

旧版である vim-powerline の場合も既に対応する記事が出ております。

unite.vim のステータスを vim-powerline で表示する – C++でゲームプログラミング
http://d.hatena.ne.jp/osyo-manga/20130429/1367235332

Continue reading

本当は優しい Powerline(2日目 セグメント追加編)

“編”とか書きましたが、続くんですかね。

iTerm2 + tmux + vim + Powerline

iTerm2 + tmux + vim + Powerline

前回は Python 版の Powerline についてレポートしましたが、相も変わらず怒濤の勢いで更新されておりまして目が離せません。

前回の記事から更新された点で、前バージョンである vim-powerline紹介記事)からの改善点をいくつか挙げますとこんな感じです。

テーマやカラースキームがリアルタイムに反映されるようになった
vim や tmux の再起動を待つ必要がありません。
表示内容によってグラデーションがかかる表示が出来るようになった
たとえば CPU 使用率のセグメントでは、0% のとき緑色、50% のときオレンジ色、100% のときは赤色、など、色が自然に変わります。
powerline-daemon によって Powerline プロセスが永続化できるようになった
厳密には、これは別のプロダクトなのですが、powerline-daemon を使うと、Powerline プロセスを毎回起動する際のオーバーヘッドがなくなり、CPU 使用率を削減できます。

最初から用意されているセグメントは基本的なものばかりですので、欲しいセグメントはどんどん自分で書いて追加していきましょう。今日はその辺をまとめたいと思います。

Continue reading