4 日連続で Powerline の記事ばっかりだったので、ちょっと別の話を。
タイル型ウィンドウマネージャという概念を知りました。作業中は常に画面全部をウィンドウで埋め、複数のアプリケーションを開いた状態での一覧性を重視したウィンドウマネージャです。Windows ならば Aero スナップ1を使うことでこれに近いことが出来ます。
vim というエディタはそもそもこの タイル型方式 です。複数のファイルを開くときは画面を分割して行き来するか、 バッファー という形で画面の裏側にたまってきます。そもそもタブ機能なんてのは後から加えられたものでした。
vim でタイル型ウィンドウマネージャを実現する dwm.vim
dwm.vim はタイル型ウィンドウマネージャとして著名な Dwm にインスパイアされたプラグインです。百聞は一見にしかず、使っているところを動画に撮ってみました。
編集したいファイルは左側に大きく開かれ、今まで編集していたファイルは右側にたまっていきます。後でファイルが必要になったときも、簡単に探し出して編集を開始することが出来ます。
動画は解像度の都合から狭いターミナルで撮っていますが、実際にはターミナル自体を最大化して使った方がいいですね。
インストール方法
" .vimrc に↓のように書いた後、 NeoBundle 'spolu/dwm.vim' " 次のコマンドでインストール完了 :NeoBundleInstall
今回はファイルを素早く開くために Unite を使用しました。合わせてキーバインドを以下のように設定しています。以前の記事も参考にしてください。
" dwm.vim 設定(全てデフォルト) nnoremap <c-j> <c-w>w nnoremap <c-k> <c-w>W nmap <m-r> <Plug>DWMRotateCounterclockwise nmap <m-t> <Plug>DWMRotateClockwise nmap <c-n> <Plug>DWMNew nmap <c-c> <Plug>DWMClose nmap <c-@> <Plug>DWMFocus nmap <c-Space> <Plug>DWMFocus nmap <c-l> <Plug>DWMGrowMaster nmap <c-h> <Plug>DWMShrinkMaster " Unite 設定 noremap zp :Unite buffer_tab file_mru<CR> noremap zn :UniteWithBufferDir -buffer-name=files file file/new<CR>
キー | 意味 |
---|---|
zn | Unite で新しいファイルを開く。 |
zp | Unite で過去に開いたファイル・バッファーを開く。 |
Ctrl + n | 新しいウィンドウを左側に開く。 |
Ctrl + j | 次のウィンドウに移る。(時計回り) |
Ctrl + k | 前のウィンドウに移る。(反時計回り) |
Ctrl + Space 又は Ctrl + @ | 今いるウィンドウをメインウィンドウ(画面の左半分)と交換する。 |
Ctrl + c | 今いるウィンドウを閉じる |
Ctrl + l | メインウィンドウを広げる。 |
Ctrl + h | メインウィンドウを狭める。 |
基本的には以下のような流れで使っています。
- Unite でファイルを開いて編集開始。
- 他のファイルが編集したくなったら、Ctrl + n を押して新しいウィンドウを開く。今まで編集していたファイルは右側に移る。
- 新しいファイルをどんどん開いていくと、右側にウィンドウがどんどんたまっていく。
- ウィンドウが増えすぎて画面が煩雑になってきたら、Ctrl + c で消す。
- 一つのファイルに集中したいときは、Ctrl + w o でウィンドウを一つだけにする。
これだけです。何をやるにもCtrl + n を押してからと考えれば混乱しないと思います。
終わりに
こんな記事書いた僕が言うのも何ですが、vim のタブ機能ってのはいまいち使い勝手が悪いのです。たくさんタブを開いた状態では、編集したいファイルを見つけ出すのに一苦労ですし、ふと気付くと同じファイルをいくつものタブで開いていたりします。dwm.vim はこんな僕にぴったりのプラグインでした。
- Windows8 では Aero 自体が消えてしまったので単なるスナップに改称されました。Mac なら BetterTouchTool などをインストールすると同様の機能が使えます。 ↩
Pingback: Vim でタイル型ウィンドウマネージャ その2 | blog.delphinus.dev