Emacs缓冲区组/选项卡

Emacs缓冲区组/选项卡,emacs,Emacs,我总是同时处理多个代码库。通常是一个内部库、一个web应用程序和一些服务 Emacs是否有一种方法可以为每个代码库打开多个缓冲区,但将这些缓冲区分组?就像每个代码库或组的选项卡一样,我可以轻松地在它们之间切换 我查过了,这不是我要找的。我正在寻找一种简单的方法来快速地从一个代码库切换到另一个代码库。比如为每个项目保存一组窗口并在它们之间快速切换 有什么想法吗?一些建议: ibuffer是list buffers的高级替代品,您可以在其位置绑定到C-xC-b。这使您可以根据各种条件筛选缓冲区列表,

我总是同时处理多个代码库。通常是一个内部库、一个web应用程序和一些服务

Emacs是否有一种方法可以为每个代码库打开多个缓冲区,但将这些缓冲区分组?就像每个代码库或组的选项卡一样,我可以轻松地在它们之间切换

我查过了,这不是我要找的。我正在寻找一种简单的方法来快速地从一个代码库切换到另一个代码库。比如为每个项目保存一组窗口并在它们之间快速切换

有什么想法吗?

一些建议:

  • ibuffer
    list buffers
    的高级替代品,您可以在其位置绑定到C-xC-b。这使您可以根据各种条件筛选缓冲区列表,将筛选器组合成组,并按自己的意愿排列组;您还可以保存过滤器和组,以便稍后恢复。使用ibuffer缓冲区中的C-hm查看所有选项。另见:

  • 尝试Emacs的各种类似屏幕的库,例如或。我从未亲自尝试过,但我想每个屏幕都可以有单独的缓冲区列表,这似乎符合您的目的

  • 如果您想要更大的分离,例如当一个项目处于“活动”状态时,其他项目的缓冲区不可用,那么我不知道如何在单个Emacs实例中实现这一点,但在这种情况下,我只需启动多个Emacs实例;每个项目一个。Emacs在现代硬件上足够轻量级,因此这是一种完全合理的方法


  • 看一看-一个简单而不引人注目的Emacs项目管理库。它的一个功能就是从特定项目(C-C p b)切换到缓冲区。

    为此,我使用了
    ibuffer
    ,以及my(可通过);此扩展根据缓冲区所属的版本控制项目对缓冲区进行分组,这是一种理想的面向程序员的缓冲区分组方式。

    我也会再投一票。这里提供了一个关于如何有效使用射弹和头盔的优秀教程(事实上是一系列教程的一部分):

    赫尔姆是如此伟大,我不能没有它!因此,另一个建议是阅读本教程:


    @Phils的答案是正确的:ibuffer是标准的选择,顺便说一句,很有趣

    我个人将旧的
    (列表缓冲区)
    重新映射到它:

    (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\*"))))))
    

    你需要弄清楚你到底在找什么。它是一个像你点击的标签一样的图形小部件吗?点击之后会发生什么?这里是我认为是Tabar样式缓冲分组的权威线程的链接: