emacs多窗口多buffer多文件的使用方式问题

各位,我平时是下面这种方式来使用的。我想知道如果不借助tmux,单纯用emacs的话,有什么方式可以满足这个习惯。

我平时在终端中用emacs,同时用tmux。在emacs中需要打开多个文件。切换来切换去。 我在一个tmux的标签里开一个emacsclient,显示一个文件,同时用emacs分割窗口,显示不同的文件。。

在另一个tmux的标签里开另一个emacsclient,显示第二个文件,同时也用分割窗口。显示不同的文件。

然后时不时切换到不同的标签看不同的文件。

类似这种方式使用,如果不借助tmux的标签,emacs有办法做到这种效果么?tabbar之前用过,后来看着占地方,而且也用不到鼠标就放弃了。

我的需要基本上是需要保持好几个emacs的窗口 然后保持分屏的状态切换时不变。这样可以让我同时保留多个文件的位置随时查看。不知道emacs本身有没有什么插件或者办法能达到这个效果。

试试sort-tab

tab 不能满足要求。tab好像无法保留emacs的分屏状态。我这种用法有点类似需要多个屏幕,或者多个工作区的感觉。

第一个屏幕 分成左右两屏,左边a文件,右边b文件。

第二个屏幕 分成左边一屏,右边又分了上下两屏。分别显示着 c d e文件

第三个屏幕 用来作备用的。随时打开其他的任意文件

在不同的屏幕切换的时候,要保留它之前的分屏状态。便于我切换回来之后显示器当前状态和之前是一样的。

tabbar貌似达不到这种效果吧。目前用tmux的标签是可以达到的。不知道emacs有没有其他的方式可以不依赖tmux。

我不知道其他人是怎么用的,或者说emacs能不能有这种方式的工作区的概念?

看看doomemacs的workspace的实现呢

这个没用过。我一直用spacemacs。它可以达到这个效果么?我去看看。

tab bar 稍微改改是能用,但是会占个地方

我现在用 eyebrowse

burly.el

多个 frame,每个有自己的 window layout。 通过 register 来记忆多个 frame layout,要恢复时访问对应名称的 register 即可。

能否介绍一下你的用法。很多时候各种功能的好处完全和用法有关。

能否介绍一下你的用法。

是的,就是这种需要。这种方式有需要什么扩展或者什么设置么?

新建一个 frame:C-x 5 b

将当前 frame 的 window layout 保存到 register a:C-x r f a

恢复 register a 中保存的 frame layout:C-x r j a

不新建 frame 也行,也可以使用同一个 frame,但是用 register 缓存多组 window layout:C-x r w a

多谢。这个效果是我要的。刚试了一下,切换和保存layout稍微不如用tmux标签来的快。不过至少不依赖tmux了。

我再研究一下。

可以体验下 consult,内置的 register save 和 load 功能非常方便,还可以preview。

就是用 bulry-bookmark-windos 将 windows layout 保存为一个 bookmark,然后用 bookmark-jump 或者 burly-open-bookmark 恢复之前的 windows layout;还可以使用burly-bookmark-frames 保存所有的 frames.

burly 最新的 版本 0.3-pre, 可以结合 tab-bar-mode, 一个 tab 对应 一个 layout, 用 burly 相应的命令保存恢复:

Command burly-tabs-mode, which integrates Burly with tab-bar-mode. When active, Burly bookmarks are opened in new tabs, and the tabs are named according to the bookmark.

这个方案相对于 window register 的好处就是它可以在多个 Emacs sessions 里使用

平时基本就用亮点

按照项目或者名字创建一个新的 workspace 按照名字切换 workspace

spacemacs的 spacemacs-layouts layer 和doom的应该是一个东西

现在用的 i3 似乎就是这种特色. 不过, 这是在 emacs 之外了. 算是窗口管理器, 即所谓的 wm