emacsでいうanything.elのvim版がUnite.vimです。これは、開いているバッファの一覧やヤンク履歴が見れたり、ファイルエクスプローラ的な使い方もできる大変便利なプラグインです。インストール方法などはBundle使ってたりするといろいろ違うので自分の環境に合うインストール方法を選択してください。

ここでは、最小限の設定でUnite.vimの恩恵を受けるための方法を紹介します。

バッファ一覧を表示する

バッファ=今開いているファイルの一覧を表示するショートカットを設定します。

" バッファ一覧
noremap <C-U><C-B> :Unite buffer<CR>

この設定をすると、[Ctrl+U][Ctrl+B]を押すことでさらっとバッファ一覧が表示されます。もちろん、表示されたバッファ一覧は上下キーで選択し切り替えることができます。

現在のバッファがあるディレクトリのファイル一覧を表示する

現在のバッファ=今開いているファイルがあるディレクトリ中のファイル一覧を表示するショートカットを設定します。

" ファイル一覧
noremap <C-U><C-F> :UniteWithBufferDir -buffer-name=files file<CR>

この設定をすると、[Ctrl+U][Ctrl+F]を押すことでファイル一覧が表示されます。ディレクトリ移動をせずにファイル一覧を開くことができるのでおすすめの設定です。

最近使ったファイルの一覧を表示する

最近使ったファイルの一覧を表示するショートカットを設定します。

" 最近使ったファイルの一覧
noremap <C-U><C-R> :Unite file_mru<CR>

この設定をすると、[Ctrl+U][Ctrl+R]を押すことで最近使ったファイル一覧が表示されます。

レジスタ一覧を表示する

レジスタ一覧=ヤンク履歴を表示するショートカットを設定します。

" レジスタ一覧
noremap <C-U><C-Y> :Unite -buffer-name=register register<CR>

この設定をすると、[Ctrl+U][Ctrl+Y]を押すことでレジスタの中身を一覧表示することができます。

まとめ

現在のところ、上記の設定とそれをいくつか組み合わせて以下のような設定で落ち着いています。

"------------------------------------
" unite.vim
"------------------------------------
" 入力モードで開始する
let g:unite_enable_start_insert=0
" バッファ一覧
noremap <C-U><C-B> :Unite buffer<CR>
" ファイル一覧
noremap <C-U><C-F> :UniteWithBufferDir -buffer-name=files file<CR>
" 最近使ったファイルの一覧
noremap <C-U><C-R> :Unite file_mru<CR>
" レジスタ一覧
noremap <C-U><C-Y> :Unite -buffer-name=register register<CR>
" ファイルとバッファ
noremap <C-U><C-U> :Unite buffer file_mru<CR>
" 全部
noremap <C-U><C-A> :Unite UniteWithBufferDir -buffer-name=files buffer file_mru bookmark file<CR>
" ESCキーを2回押すと終了する
au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>

これでだいぶ快適なvim生活が送れるはず!

 

エキスパートPython読書会で話題になったので。
ついでにtabをスペースに変換も。


" 保存時に行末の空白を除去する
autocmd BufWritePre * :%s/\s\+$//ge
" 保存時にtabをスペースに変換する
autocmd BufWritePre * :%s/\t/ /ge

これだけです。

 

何度か紹介してるCakePHP向けcakephp-pjax-pluginについて、やっとCakePHP2.0対応させたのでお知らせ。ついでにCakePHP2.0の命名規約に従い、名前をCamelCaseに変えて、CakePjaxというプロジェクトにしました。DEMOはこちら。

sanojimaru/CakePjax – GitHub

今は仕事で使いたいもの、かつ実装が容易なものから優先的に作っているんですが、今後はもう少し大きなもの、CakeだけじゃなくPHP全般の役に立つものが作りたいなと思います。

 

gihyo.jpさんにPHP Matsuri 2011のレポートが2本とも掲載され、やっと俺の祭りが終わった。結局締め切りギリギリになってしまいとても反省しています。

少し振り返ってみると、祭りが終わった直後からものすごい勢いでモチベーションが上がっていて、心の中で悶々としてたものが一気に整理がついたように思う。それは、yandoさんの行動力や日々進化していくhyoshiokさんの生き様を目の当たりにして、ハッカーとは何たるかが少しだけわかった気がするからでもある。ここ2年ぐらい、スーツとギークの狭間で葛藤していた気持ちがやっと晴れた感じがしてとても心地よい一方、仕事や社会生活において自分も「ハッカー」としてアウトプットしていかなきゃならないなと少しプレッシャーを感じてもいる今日この頃。

さて、PHP Matsuriでは一応cakephp-pjax-pluginという、CakePHPに簡単にpushstate+ajaxを実装できるプラグインを書いて発表した。pjaxはgithubなんかで使われてる素敵技術(このへんの説明がわかりやすい)なので興味があったら使ってやってください、デモはこちら。ただ、pjax_railsというrailsプラグインのパクリで、数行で出来てしまう簡単なものだったので欲求不満気味。しかも、CakePHP2.0を実際に動かした事が無かったのでCakePHP1.3対応というお粗末さ。

そこでこんなの作ってみた。一応のデザインを入れたり、Flickr APIとスライドショーライブラリのドキュメントと睨めっこしつつも7,8時間ぐらいで出来たのでハッカソンで作っても間に合うぐらいの規模感。もともとはひたすら猫の画像見続けるサイトが欲しいねって友達と話していてドメインだけ取っていたものなんだけど、PHP Matsuriを期にFlickrを使い始めたこともあり、Flickrのタグ検索に当たった写真をスライドショーにできるサービスにしてみた。それだけだと面白くも何ともないので、youtubeにアップされている動画のURLを一緒に登録することでBGMを流せるようにした。これでPHP Matsuri参加者には響くサービスになったんですよきっと!

というわけで、Flickrにアップした写真に”phpmatsuri2011″のタグを付けると上のサンプルにも追加されるはず。

まだ4点ほど問題があって、

  1. 最新のchromeとfirefoxでしか確認してない
  2. スライドショーのjavascriptがパフォーマンス的に厳しくて今は写真の枚数を30枚までに制限してる
  3. 肝心のスライドショーを作ったり管理したりの機能を作り込んでないのでまだ公開できるレベルじゃない
  4. IE爆発しろ

と取り急ぎ自己満足レベルにしかなってないんだけど、CakePHP2.0で何か作るっていう目的は達成できたし、とりあえず真新しいサービスでもないのでゆっくりやることにします。あと、これ作るついでにTwitterBootstrapをCake用にゴニョゴニョしたCakeBootstrapというプラグインも作りました。最初Themeとして作ってたのでREADMEが完全に間違ったままだったりしますが意外と便利なので良かったらどうぞ。特にCSS周りは荒削りなのでpull request貰えると泣いて喜びます。

© 2011 sanojimaru.com Suffusion theme by Sayontan Sinha