ibuffer:プロジェクトごとにグループを自動的に作成する方法


9

プロジェクトごとにバッファリストをibufferにグループ化したいと思います。プロジェクトは、単語の射影の意味で意味されます。

新しいプロジェクトで作業するたびにEmacs構成を変更したくありません。これを自動的に達成する方法はありますか?

回答:


5

次のようなものを使用して、既知のプロジェクトのフィルターグループを定義できます。

;; Define ibuffer filter groups for each known project
(defun my/define-projectile-filter-groups ()
  (when (boundp 'projectile-known-projects)
    (setq my/project-filter-groups
        (mapcar
         (lambda (it)
           (let ((name (file-name-nondirectory (directory-file-name it))))
             `(,name (filename . ,(expand-file-name it)))))
         projectile-known-projects))))

;; Set up default ibuffer filter groups
(setq ibuffer-saved-filter-groups
      (list
       (cons "default"
             (append
              (my/define-projectile-filter-groups)
              ;; ... whatever other groups you want, e.g.
              '(("dired" (mode . dired-mode))
                ("erc" (mode . erc-mode)))
              ))))

;; Enable default groups by default
(add-hook 'ibuffer-mode-hook
              (lambda ()
                (ibuffer-switch-to-saved-filter-groups "default")))

;; You probably don't want to see empty project groups
(setq ibuffer-show-empty-filter-groups nil)

更新

私が最初にこの回答を書いてから、@ sanityincはibuffer-vc、発射体プロジェクトルートによってフィルターグループを作成するバリアントを作成しました。ibuffer-projectileMELPAまたはGitHubで見つけることができます。


これはまさしく私が探していたものです、ありがとう!
ckruse 2014年

これはProjectileに統合できます。
Tu Do

はい、ibufferグループをサポートするためにプルリクエストを送信する必要があります。それは以前に一度現れましたが、私はフォローアップしませんでした。:Dもっと詳しく見ていきます。ibuffer-vcのようなことをして、既知のプロジェクトリストではなく、現在のバッファに基づいてグループを構築する方が理にかなっているかもしれません。しかし、簡単なオプションは、ここに示すように、発射物に既知のプロジェクトから名前付きフィルターグループを定義させることです。
グルカ2014年

@Silexが別の回答で述べたように、誰かがすでに今年初めにibufferサポートを追加しました-私はそれを逃しました。これは、現在のプロジェクトに対してのみibufferをフィルタリングするという点で別のアプローチですが、便利に見えます。
グルカ2014年

@glucasもですが、Projectileの現在のIbuffer動作はと冗長projectile-switch-bufferです。Ibufferは大量のバッファを管理するためのものであり、そのため、グループ化とフィルタリングが行われます。既知のプロジェクトリストに基づいてグループ化し、Projectileとの一貫性を高める現在のアプローチが気に入っています。
Tu Do

5

プロジェクトは、単語の射影の意味で意味されます。

Projectileを使用して、特定のプロジェクト内のバッファーに切り替える方法があります C-c p b

ibuffer-vcを提案してもいいですか?バッファを親のvcルートディレクトリでグループ化する方法。


ibuffer-vc私が探しているものにかなり近いです。しかし、それは私のを上書きしますibuffer-saved-filter-groups。標準グループに加えてVCグループを作成する方法はありますか?
ckruse 2014年

@ckruseわかりません。掘ってください。
Nsukami _ 2014

これは役立つかもしれません:github.com/reinh/dotemacs/blob/master/conf/init.org#ido。具体的には冒頭部分nox/ibuffer-apply-filter-groups
チロシニウム

3

発射物を使用すると、単にC-c p I(projectile-ibuffer)と入力でき、そのプロジェクトのバッファーのみがibufferに表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.