不谈Spacemacs,只谈Centaur Emacs

仔细看看use-package的文档。

建议安装 macrostep 这个包,用这个包的命令 macrostep-expand 去宏展开 use-packge。宏展开多了你就知道use-package under the hood 到底在做什么了。use-package 是个很简单的包,多对它宏展开多了就会用了。瞎琢磨没什么用,直接看代码是最好的。

自己来回答一下,好像evil,meow这些packages,在use-package里要加上:demand t让它马上加载才能正常用。

你还是没有理解延迟加载的概念。还是那个建议,仔细阅读use-package的文档。

不需要加demand。

可能是因为 use-package-always-defer t 的设置。

use-package相关链接是这样说的,it’s possible that without adding :demand t to those declarations, your package will never be loaded

另外,论坛中也有类似的讨论。

这两天把自己配置从 Spacemacs 转到 Centaur Emacs,

  1. 好像也没有什么大毛病.即使是evil,我用了好几年,但是切换回Emacs原生键位,好像也挺容易习惯.
  2. 在 Spacemacs 里面,有时为了工程化,反而把不少快捷键变更复杂了
  3. 同时,切换后的配置文件夹也小了近 80%.

这样看来,Spacemacs 里面大部分内容对我来说是完全冗余的…以后准备主要用 Centaur Emacs 了.

1 个赞

多宏展开。瞎猜瞎试验是没用的,直接宏展开就知道use-package到底在做什么,就很清楚怎么用了。宏展开比看文档效果都好,很多时候文档都说不清楚如果同时加了若干个参数以后到底会发生什么样的协同效果,这时就得看宏展开才能知道了。

@seagle0128 @Jousimies 我试过了,不加:demand t是用不了的啊。

我觉得问题应该就是 @org 说的那样导致的。

确实打开了这个设置。

我这就去研究一下宏展开

简单点说,demand 是强制加载,defer是该使用的时候才加载。

好好研究哈,我就没深入看怎么回事,我受到影响的还有包有smartparens和orderless,我都强制加载了。

请问在 Centaur Emacs 中,如果想删除某一个包,比如 grip-mode,标准流程是怎样做呢?

当然是问作者@seagle0128 啦, 那么活跃都没看到吗?另外参考 github 上的 issue ,How to disable package · Issue #109 · seagle0128/.emacs.d · GitHub

谢谢,没有搜到这个 issue

你可以在custom.el 或者 custom-post.el中定义自己的行为,比如去掉hook,unbind key。对于grip-mode,只要你不使用快捷键触发,安装了也没有关系。如果还不能满足就自己fork一份维护。

(add-hook 'org-mode-hook (lambda (grip-mode -1)) )

这样并没有删除这个 mode,并且在 org-mode 里面还是能使用 grip-mode。我不是想默认关闭它,而是直接不安装。至少不要占用 C-c C-g 这个快捷键。因为 C-g 一般都是取消。

那你参考 Remove Keybinding in Emacs | Emacs Redux ,试试

(define-key org-mode-map (kbd "C-c C-g") nil)
or
(unbind-key "C-c C-g" org-mode-map)

这个我没试过哈,也是文章中这么写的,如果还是不行,就把 init-markdown.el文件里的 grip-mode部分注释掉,然后M-x,执行pakcage-list-packages,找到 grip-mode,按d然后按x,删除这个包就好了

谢谢。可行。能把快捷键解绑也行。

org mode 下面有一个很烦人的特性。org babel 的输出字体颜色,总是和 theme 的背景色一致,无论 light 还是 dark theme 都如此。这导致永远无法直接看到 org babel 的结果。不知道在哪里可以设置这个。

image image

并没有一样的颜色啊。