livky
1
系统: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)
应该是个简单的问题,但是不知道哪错了?
LdBeth
2
config.el 里原则上除了 setq 别的都不能放,甚至大多数情况下不会写 config.el。这些都放对应的 use-package 里。require 那行因为已经有 use-package 应该直接去掉,
livky
3
确实是这样,那package那里可以load-file一个文件用来存放配置吗?config里面不能放除了setq其他语句原理是什么,能简单说一下么
LdBeth
4
可以。不過在 dotspacemacs/user-config
里 load 更合理些。
config.el 执行的時候 package.el 还沒加載。只能用 Emacs 和 Spacemacs 內置的函數。(global-hungry-delete-mode)
(global-linum-mode 1)
這些都是外部的函數。
livky
7
233。
今天重新看了下message的信息,好像config还是后执行的?(虽然按你的方法bug是消除了)
livky
9
哦哦,那layer.el的顺序是怎么样的,我在layer中取消了系统自带的hungry-delete包,然后package.el定义函数时只用了init-xxx没用post-init-xxx还是给了warning。(这顺序感觉不合理)