对于emacs窗口管理包,大家有什么好的建议?

给我报bug。不用自己修了。wg2代码要至少去掉一半才维护。

也不知道老一辈 lisper 都是类似这种理念,还是这个哥们比较夸张, 指代宏,宏套宏用的哗哗的。。。 :crazy_face: :rofl:

1 个赞

恩,你先删代码吧

我觉得perspective 蛮好用的

我突然发现 tab-bar-mode 就挺好用。。。。 不折腾

用我的awesome-tab吧,哈哈哈哈

tab-bar-mode占用了上面一行的空间,我个人感觉perspective这种将workspace显示在modeline的方式更符合我的要求。而且我还给它加上了一个用数字选择工作区的方式,用起来现在有点像i3.

我习惯使用 package.el :slight_smile:

你是不是启用了 minor mode?

不需要 burly 支持,关键是扩展 bookmark 支持 shell-mode Buffer,如下:

;; shell buffer bookmark
(defun my/shell--bookmark-jump (bookmark)
  "Default bookmark handler for shell buffers."
  (let ((default-directory (bookmark-prop-get bookmark 'path)))
    (shell (bookmark-prop-get bookmark 'name))))
(defun my/shell--bookmark-make-record ()
  "Make a emacs bookmark entry for a shell buffer."
  (cons (buffer-name)
    `((name . ,(buffer-name))
      (path . ,default-directory)
      (handler . my/shell--bookmark-jump))))
(defun my/shell-mode-hook-function ()
  (set (make-local-variable 'bookmark-make-record-function)
       'my/shell--bookmark-make-record))
(add-hook 'shell-mode-hook #'my/shell-mode-hook-function)

Emacs 的 bookmark 内置支持,本身是非常稳定的,也很方便扩展支持其它 mode,我觉 得 burly 聪明的地方就在于其最核心的功能是由 bookmark 提供的,属于讨好又不费 力。

window-purpose?

这个一直在维护,spacemacs也用的它(作者是spacemacs比较积极的贡献/维护者)

没关系 可以用 subtree 直接内嵌到自己的configuration里, 我就是这么干的,只要是没上melpa的包都被我archive到一个文件夹里了,这样就可以算是自己配置的一部分了 :smiley:

我发现 workgroups2 去掉了 wg-session-load-on-start 变量,在我开启 (workgroups-mode) 之后,没有办法在打开 emacs 的时候 load 那个 workgroup。请问要让 workgroups-mode 在 emacs 打开后马上 load workgroup ,该如何做?

(wg-open-workgroup "some-group-name") 打开特定的group.

那我怎么做到一打开 emacs 就自动 open 呢?

Loads the first saved workgroup from wg-session-file, or creates one named “First workgroup” if there are none. This can be disabled by setting wg-session-load-on-start.

就是这个 faq 提到的,或许我曲解了意思? 我以为打开了 workgroup-mode 就可以实现这个功能

这个功能原来有的,被我去掉了。不太安全。如果打开的buffer的mode-hook里有导致emacs崩的代码,那么emacs就无法运行了,而且也没法看错误信息。

emacs启动时自动打开workgroup对改善整体工作效率没有什么帮助,不差这几秒种。很多人要这个功能也就是用emacs前习惯了其他编辑器。

一定要这个功能也很容易,直接在~/.emacs.d/init.el调用wg-open-workgroup就行了。

1 个赞

说的也是。那我就手动加上吧。

emacs自由度太高,砍掉这个功能也是为了降低维护成本。workgroups2之前被原作者放弃维护好多年就是因为历史包袱太重。太多无用的功能导致代码超过了4000行。

workgroups2的杀手特性是支持很多特殊 buffer(如org-agenda),用户也可以添加对其他特殊buffer的支持。workgroups2/workgroups2-support.el at master · pashinin/workgroups2 · GitHub 有很多例子。

1 个赞
  1. 请问 @tumashu 这里用的 switch-window 命令是哪个包提供的?

  2. 请问大家除了窗口管理工具, 有没有推荐配套的窗口切换工具呢?

我用自带的 windmove 出现了莫名其妙的问题, 见 求助: 窗口切换命令 “windmove” 不能正常切换到 org-roam-buffer 窗口!

switch-window 包

1 个赞