TIM Labs

僕が一番 Vim のタブページをうまく使えるんだ(カレントディレクトリ編)

| コメント(0) | トラックバック(0)

問題

Vimのタブページ はとても便利です。 例えばウィンドウを分割して複数のファイルを並行してにらめっこしていたとしましょう。 その最中に誰かからの依頼等で全く関係のない作業をやることになったとします。 このとき、

  1. 新しいタブページを開いて、
  2. そこで作業を進めて、
  3. 作業が完了したらタブページを閉じて、
  4. 先程まで行っていたにらめっこ作業を再開する

という形で中断された作業をスムーズに再開することができます。 やりましたね。

しかし、これだけではまだタブページを全力全開で活用しきっているとは言えないのではないでしょうか。

例えば以下のような状況を考えてみましょう:

  • あなたはプロジェクトAとプロジェクトBの両方を開発しています。
  • AとBは相互に連携しています。
  • 大抵はAまたはBのどちらかの配下のファイルだけを編集するだけで十分です。
  • 時には双方の配下のファイルを並行して編集する必要があります。

このような状況で効率良く開発する方法は色々あると思いますが、 その一つとして 「プロジェクト毎に専用のタブページを用意して作業する」 というものがあります。 この例で言えばA用のタブページとB用のタブページをそれぞれ用意して、 各プロジェクトのファイルは専用のタブページでのみ開くということです。 ひとつのタブページ内で双方のプロジェクトのファイルを開いているとどこにどのファイルが表示されているのか混乱しがちだからです。

ただこの方式にはひとつ問題があります。 例えばAは ~/project/a に、Bは ~/project/b にあるとしましょう。

  • カレントディレクトリを ~/project/a に切り替えておけばAのファイルを開いたり :grep するのが簡単になります。
  • しかしこの状態でB用のタブページを表示してBに関する作業をしようとすると、 カレントディレクトリが ~/project/b ではないため、 Bのファイルを開いたり :grep するには適宜追加のパスを入力しなければならず、面倒です。

理想としては タブページ毎にカレントディレクトリを設定 できれば良いのですが、 あいにくそのような機能はVimには存在しません。 似たような機能としては :lcd があるのですが、 これはウィンドウ毎にカレントディレクトリを設定するコマンドなので、 これでは切り替える単位が細かすぎて不便です。 どうすればよいでしょうか。

解答

vim-tabpagecd を使います。

このプラグインをインストールすると :cd がタブページ単位で機能するようになります。 何も設定する必要はありません。 やりましたね。

このプラグインは実質10行程度の簡単な作りになっていますので、 Vimプラグイン作成のとっかかりにもちょうど良いでしょう。

予告

次回は Emacs 編です。

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/294

コメントする

このブログ記事について

このページは、kanaが2012年5月 1日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「Sphinxで打ち消し線を使う」です。

次のブログ記事は「僕が一番 Vim のタブページをうまく使えるんだ(GNU screen 連携編)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。