怎么固定一个window?

想要一个像 neotree/treemacs那样的窗口,固定的,不会受任何影响

从版上查了有说可以用 window-purpurse,

试了一下,会被一些操作关掉

比如打开 org-agenda的时候

可以试试speedbar一样的独占一个frame,我一般除speedbar外在开两个frame,一个左右分割窗口,一个上下分割窗口

我用着全屏,speedbar好像不能用,打开会另开一屏

Emacs 有 sticky window 和 side window 这两种你可能用得上。用 display-buffer-alist 机制来管理很简单。 比如下面我的两个设置样例:


(add-to-list 'display-buffer-alist
             '("^ \\*undo-tree\\*"
               display-buffer-reuse-window display-buffer-in-side-window
               (reusable-frames . visible)
               (side . right)
               (slot . 1)
               (window-width . 0.5)
               (window-height . 0.15)))

(add-to-list 'display-buffer-alist
             `(,(rx bos "*Flycheck errors*" eos)
               (display-buffer-reuse-window
                display-buffer-in-side-window)
               (side            . bottom)
               (reusable-frames . visible)
               (window-height   . 0.15)))

side window 无论我怎么都分不成先垂直两个窗口然后在右边的那个在水平分两个,无论怎么分只要用side-window分,水平的那个永远占据一整个底部区域,你知道怎么弄吗

https://www.gnu.org/software/emacs/manual/html_node/elisp/Atomic-Windows.html#Atomic-Windows

这个试试(我没用过)

手册早就看过了,就是没看懂

改 window-sides-vertical

类似的需求,我一般用 writeroom

也可以参考这个 https://github.com/amosbird/realign-mode.el

看起来很有道理的样子,我可能没有仔细读手册

全屏感觉如果开的窗口太多时,十多二十个,切起来会不太顺畅,就没用全屏,不过emacs窗口优先级会调最高,放在其他所有窗口的前面

手机都是全屏,但通常也就在几个APP间切换吧,如果是十多二十个APP间切换就利索不起来了

那些tree的特殊设置目前看不懂,但是修改 org-agenda的打开方式可以解决问题

(setq org-agenda-window-setup 'other-window)

我这默认是的 reorgnize-frame:

Show only two windows on the current frame, the current window and the agenda.

1 个赞