每个项目一个窗口


9

我现在正在从事多个项目。我想要一个 Emacs实例来处理所有这些。我想要的是类似tmux的行为,其中每个“窗口”(在Emacs意义上)都对应于一个项目,其中包含与该项目相关的文件的缓冲区。有几个窗口,每个窗口对应一个项目,我应该能够在它们之间切换(类似于C-b w

此功能已经以某种形式存在吗?我想拥有其他选项是很酷的:

  • 打开几个Emacs实例。
  • 将所有项目的所有文件放在一个实例中,这使切换缓冲区很麻烦。

2
对于项目管理,您是否尝试过透视
cutejumper

试试这个关于Emacs的博客文章,它是一个高级终端多路复用器:您将获得类似Tmux的行为。我偶然发现了它,将其投入工作,并且它做了广告。最重要的是ace-jump-mode,它本身就是一个很酷的解决方案,可以使您的光标在缓冲区中快速跳动(如果还没有的话)。

如果您愿意花费一些初始设置时间来定义项目的条件,则可以将它们分配到每个框架中并使用frame-bufs。另请参阅如何在打开文件之前对其进行拦截并确定在哪个帧上stackoverflow.com/questions/18346785/…)在目标帧中显示缓冲区,并且可以frame-buffs--add-buffer结合使用以获取关联的帧。您可以动态地frame-bufstabbar缓冲区结婚并关联/删除缓冲区: emacs.stackexchange.com/a/10112/2287
律师名单

这是将frame-bufs缓冲区与特定框架相关联的链接: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
法律列表

@cutejumper透视图是完美的。您可以将其写为答案,以便我正确打勾。
sudeepdino008 '16

Answers:


7

您可以使用透视图来管理项目。从其自述文件:

Perspective.el为每个Emacs框架提供了多个工作空间(或“视角”)。这使得在许多单独的项目上工作变得容易,而又不会丢失所有缓冲区。

每个透视图均由窗口配置和一组缓冲区组成。切换到透视图将激活其窗口配置,并且在透视图中,当默认情况下仅其缓冲区可用时。

还有另一个版本persp-mode,它与原始版本略有不同。透视图在框架之间共享,并且状态可以保存到磁盘。

如果您正在使用弹丸,那么还可以进行透视集成


5

您可以尝试使用眉毛模式,该模式可以管理多个(可能是复杂的)窗口布局。你可以用键盘输入诸如窗口方式之间切换C-c C-w 1C-c C-w 2


1
眉毛在工作空间之间共享缓冲区。这可能是不可取的
sudeepdino008 '16

2

一种“准系统”解决方案可能用于C-x r w记录当前窗口状态并C-x r j返回到较早的状态。


2

我使用了几个不同软件包的组合。

最重要的是,我使用Projectile来处理“项目”和模糊查找文件。我使用多个框架,每个框架用于我当前正在处理的项目。您实际上只需要知道C-x 5 2并且C-x 5 0创建/杀死框架。为了管理项目之间的切换并存储窗口配置/拆分的状态,我使用Windows的工作组(对于emacs)

我喜欢这种设置,因为我可以将一个软件包换成另一个软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.