无法设置任何 layers 的 variables

描述

无法设置任何 layers 的变量,每次选中设置的变量使用 C-x C-e 的时候都会报错;

better-defaults 举例, 选中 (better-defaults :variables better-defaults-move-to-end-of-code-first t) 执行报错 Lisp error: (void-function better-defaults)

不明白为什么会出现这样的错误。希望大家帮忙看下。

- [.emacs.d]
- [.spacemacs.d]
  - init.el
  - custom.el

System Info :computer:

  • OS: darwin
  • Emacs: 25.3.1
  • Spacemacs: 0.300.0
  • Spacemacs branch: develop (rev. b4d663dc)
  • Graphic display: t
  • Distribution: spacemacs
  • Editing style: vim
  • Completion: ivy
  • Layers:
   dotspacemacs-configuration-layers
   '(
     ;; ----------------
     ;; Example of useful layers you may want to use right away.
     ;; Uncomment some layer names and press <SPC f e R> (Vim style) or
     ;; <M-m f e R> (Emacs style) to install them.
     ;; ----------------------------------------------------------------
     osx
     ivy
     (better-defaults :variables
                      better-defaults-move-to-end-of-code-first t)
     ;;
     )
  • System configuration features: JPEG RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES

Backtrace :paw_prints:

Debugger entered--Lisp error: (void-function better-defaults)
  (better-defaults :variables better-defaults-move-to-end-of-code-first t)
  eval((better-defaults :variables better-defaults-move-to-end-of-code-first t) nil)
  elisp--eval-last-sexp(nil)
  #[257 "\204\303!\207	\303!\n)B\211A	=\204\211A\211@\207" [eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error elisp--eval-last-sexp] 4 2273792 "P"](nil)
  ad-Advice-eval-last-sexp(#[257 "\204\303!\207	\303!\n)B\211A	=\204\211A\211@\207" [eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error elisp--eval-last-sexp] 4 2273792 "P"] nil)
  apply(ad-Advice-eval-last-sexp #[257 "\204\303!\207	\303!\n)B\211A	=\204\211A\211@\207" [eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error elisp--eval-last-sexp] 4 2273792 "P"] nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  comman

已经试过重新安装等方法,都没有用。麻烦论坛的朋友帮忙看下。

……我只能告诉你这是正常现象。没有任何 Bug。

至于为什么会这样,我相信你应该明白能理解同把一个正常的 C 语言源代码截取一半就可能没法通过编译一样,不是所有 S 表达式都是合法的 Lisp 代码。你在错误的位置用 ^X^E 当然会报错。

要刷新配置,用 SPC f e R

谢谢回复啊,已经试过这种方法了,但还是无效。很难受啊, layer 根本配置不了。刷新配置然后重启 emacs 也没有用。

重启按理说肯定可以的。也许是spacemacs对:variables偷偷做了什么改动。试试把要改的变量在user-configsetq吧。

嗯嗯。但之前也试过刷新 spacemacs 配置,一直无效,后来我直接拉取了子龙的配置,然后就生效了。可能是自己之前什么地方配错了。

也试过了,= ,= 尝试了所有,后来拉了子龙的配置就修复了。:sleepy: