分组 Emacs 缓冲区

分组 Emacs 缓冲区

是否可以在 Emacs 中创建缓冲区组,以便更好地组织大量缓冲区?

例如,假设我正在处理一个软件项目的多个分支。我可能为同一文件的分支变体打开了单独的缓冲区。我希望能够按分支对缓冲区进行分组,并且能够查看仅属于当前分支的缓冲区。

以任意方式(不一定通过源代码分支)分组(或标记)缓冲区也可能有用。

答案1

透视模式(https://github.com/nex3/perspective-el)。它完全符合您描述的情况,类似于 GNOME 和 KDE 中的工作区概念。此模式与 projectile-mode 和 helm-mode 配合使用效果很好,它们分别增强了您的 emacs 以更好地处理项目和更好地搜索它们。

如果你不想自己设置这些模式,我建议你安装 emacs 的 prelude 和简单的设置视角。你可以查看我的 emacs 配置 (https://github.com/ksinkar/prelude) 来看看我是如何做到的。

答案2

我认为您可能正在寻找类似 ibuffer 的东西(内置于最新版本中)。它基本上就像 dired 的缓冲区一样。

M-x ibuffer
% n *.py  # marks all buffers whose name ends with .py
t         # inverts the marked buffers. Those which had marks, are unmarked and vice versa.
k         # removed marked buffers from the list.

现在您应该有一个缓冲区,其中列出了所有以 *.py 结尾的文件。

欲了解更多信息,您可以C-h m在 ibuffer 模式下(查看模式帮助)。

答案3

我建议尝试 elscreen:http://www.morishima.net/~naoto/software/elscreen/基本上,它允许您创建缓冲区组并在它们之间切换,就像它们是 Web 浏览器中的选项卡一样。我最喜欢的 elscreen 功能之一是每个组之间的帧分割可以不同,这在处理不同任务时非常有用。

答案4

您还iBuffer可以将以下内容添加到您的.emacs

(setq ibuffer-saved-filter-groups
      (quote (("default"
               ("Org" ;; all org-related buffers
                (mode . org-mode))
               ("Programming" ;; prog stuff not already in MyProjectX
                (or
                 (mode . c-mode)
                 (mode . c++-mode)
                 (mode . perl-mode)
                 (mode . python-mode)
                 (mode . emacs-lisp-mode)))
               ("LaTeX"
                (mode . latex-mode))
               ("Directories"
                (mode . dired-mode))
               ))))

此示例将缓冲区分组在一起org。具有c-modec++-mode等的缓冲区pels-mode将被分组。

相关内容