2012-04-02 7 views
13

私はいつも同時に複数のコードベースで作業しています。通常、内部ライブラリ、Webアプリケーション、および一部のサービス。Emacsのバッファグループ/タブ

Emacsは、コードベースごとに複数のバッファをオープンする方法はありますか?バッファをグループ化していますか?各コードベースのタブのように、私は簡単に切り替えることができます。

tabbar-modeは私が探しているものではありません。私は、あるコードベースで作業することから別のコードベースに素早く切り替える簡単な方法を探しています。プロジェクトごとにウィンドウのセットを保存し、それらの間を素早く切り替えるなど。

アイデア?

+1

をHTTP([これをチェック]: //scottfrazersblog.blogspot.com/2009/12/emacs-named-desktop-sessions.html) – Tom

+1

あなたが探しているものを明確にする必要があります。あなたがクリックしたタブのようなグラフィカルウィジェットですか?クリックした後はどうなりますか? –

+0

ここに、私がタブバースタイルのバッファグループの権威あるスレッドと考えているものへのリンクがあります:https://emacs.stackexchange.com/questions/10081/browser-style-tabs-for-emacs – lawlist

答えて

7

いくつかの提案:

  1. ibufferは、あなたがその場所にC-XC-Bに結合することができlist-buffersの先進的な代替品です。これにより、さまざまな基準でバッファリストをフィルタリングし、フィルタをグループにまとめ、必要に応じてグループを並べ替えることができます。フィルタやグループを保存して後で復元することもできます。すべてのオプションを見るには、C-hmをibufferバッファから使用してください。参考:Emacs: help me understand file/buffer management

  2. ElscreenEscreenのように、Emacs用のさまざまなスクリーンライクなライブラリを試してみてください。私は自分で試してみることは一度もありませんでしたが、画面ごとに別々のバッファリストを持つことができます。これは目的に合ったようです。

  3. もし、あるプロジェクトが「アクティブ」であるときに他のプロジェクトからのバッファが利用できないようにするには、Emacsの1つのインスタンスでこれを行う方法がわかりませんそのような状況では、Emacsのインスタンスを複数起動するだけです。プロジェクトごとに1つ。現代のハードウェアでは、Emacsは十分に軽量ですが、これは完全に合理的なアプローチです。

6

projectile - Emacsのためのシンプルで控えめなプロジェクト管理libを見てください。その特徴の1つは、特定のプロジェクトのバッファに正確に切り替えることです(C-c p b)。

+1

+1発射体。非常に便利! – Tvaroh

5

私はこの目的のためにibufferを私のibuffer-vc extensionMarmaladeから入手可能)と共に使用します。この拡張は、バッファがグループ化される理想的なプログラマ指向の方法であるIMOであるバージョン管理プロジェクトに従ってバッファをグループ化します。

0

私は発射体に別の投票もします。そして効果的にここで提供発射と舵を使用する方法の(実際には、一連の一部、)優れたチュートリアルがあります:

Exploring large projects with Projectile and Helm Projectile

舵は、私はそれなしでは生きていけないことができるように素晴らしいです!だから、別の提案は、このチュートリアルを読むことです:

A Package in a league of its own: Helm

0

@Phils答えが正しいものである:ibufferはBTWそのthe official doc doesn't even mention it面白い、行くための標準的な方法です。

私は個人的にそれに古い(list-buffers)を再マップ:あなたの質問の "グループ化" の部分については

(global-set-key (kbd "C-x C-b") 'ibuffer) 

を、あなたはこれを使用することができます:

(defvar ibuffer-saved-filter-groups 
    '(("home" 
    ("emacs-config" (or (filename . ".emacs.d") 
         (filename . ".emacs")))   
    ("Org" (or (mode . org-mode) 
       (filename . "OrgMode"))) 
    ("Faust" (or (mode . faust-mode) 
        (filename . "\\.dsp\\'"))) 
    ("Help" (or (name . "\*Help\*") 
       (name . "\*Apropos\*") 
       (name . "\*info\*"))))))