screen/tmuxのウインドウをuniteで選択してウインドウ切替えを実現するunite-screen作った

ばよえ〜ん(訳:Vim Advent Calendar 2012への5回目の投稿です)
ブレインダムドだった。


この記事はVim Advent Calendar 58日目の記事です。
前回は@glidenoteさんの美しい日記アプリ「Day One」の記事作成支援vimプラグイン NewDayOne.vimを作ったでした。


unite-screen

タイトルの通りですが、そんなunite sourceを呼び出すシェルスクリプトを作りました。

tyru/unite-screen.sh · GitHub

動作にはunite.vimをインストールする必要があります。

なぜシェルスクリプト

  • Vimを操作中にscreen/tmux切り替えできても別にうれしくない
    • 切り替えるとしたらシェルからunite-screenを呼び出すはず
  • 端末かつscreen/tmuxの中で端末版Vimが動いてないと意味がない

といった理由のためです。

スクリーンショット

まずはシェルからunite-screenを起動します。


screenの場合、このようにwindowlistが表示され、エンターを押すかしばらく待たないと次に進めません。
この問題の原因はscreenの仕様にあり、今の所不可避です。tmuxの場合このような現象は起きません。


こんな感じでunite-screenが起動します。
ウインドウの一覧が表示されるので、選択したり、ウインドウ名を入力して絞り込んでください。

  1. 現在のウインドウは表示しません。-aオプションをつけると現在のウインドウも表示します。
  2. .vimrcの設定の影響を受けます。それプラス、「-prompt=unite-screen> -no-split」を:Uniteコマンドの引数に追加しています。

:wqa!

次のVim Advent Calendarは@HardwareLabさんです。