spacemacs 个人layer无法工作

系统:windows emacs 25.1 初学者为了测试下个人layer的工作,遇到下面问题。 自己的layer(livky)下面有layers.el ,config.el, packages,el 代码如下

packages.el:

(defconst livky-packages
  '(hungry-delete)
  ) 
(defun livky/init-hungry-delete()
  (use-package hungry-delete))

config.el:

(global-linum-mode 1)
(setq linum-format "%d ")
(display-time-mode 1) 
(setq display-time-24hr-format t) 
(delete-selection-mode t)
(require 'hungry-delete)
(global-hungry-delete-mode)

layers.el:

(configuration-layer/remove-layer 'hungry-delete)

运行之后

Debugger entered--Lisp error: (file-error "Cannot open load file" "No such file or directory" "hungry-delete")
  require(hungry-delete)

应该是个简单的问题,但是不知道哪错了?

config.el 里原则上除了 setq 别的都不能放,甚至大多数情况下不会写 config.el。这些都放对应的 use-package 里。require 那行因为已经有 use-package 应该直接去掉,

确实是这样,那package那里可以load-file一个文件用来存放配置吗?config里面不能放除了setq其他语句原理是什么,能简单说一下么

可以。不過在 dotspacemacs/user-config 里 load 更合理些。

config.el 执行的時候 package.el 还沒加載。只能用 Emacs 和 Spacemacs 內置的函數。(global-hungry-delete-mode) (global-linum-mode 1) 這些都是外部的函數。

懂了,谢谢大神。睡觉了,狗命要紧,你也早睡。

我是時差党⋯⋯这里是中午。 おやすみ

233。 今天重新看了下message的信息,好像config还是后执行的?(虽然按你的方法bug是消除了)

后加载,先执行。加载和执行顺序是不一样的。

哦哦,那layer.el的顺序是怎么样的,我在layer中取消了系统自带的hungry-delete包,然后package.el定义函数时只用了init-xxx没用post-init-xxx还是给了warning。(这顺序感觉不合理)

1 个赞