设置exec-path出错,找不到文件

请大家帮忙看看下面的这个代码对吗?运行出错了,说是找不到文件 (setq exec-path '((concat (Emacs “Files/misc/Aspell/bin/”))))

(setq exec-path '(“~/Aspell/bin/"))是对的

注: 这两个目录都是有文件的,估计是语法问题。

你想要设置的路径是什么?

另外,' 之后的表达式里的函数调用是不会被执行的,应该换成 list` (backquote)

'((concat "~/Emacs/" "Files/misc/Aspell/bin/"))
     => ((concat "~/Emacs/" "Files/misc/Aspell/bin/"))

(list (concat "~/Emacs/" "Files/misc/Aspell/bin/"))
     => ("~/Emacs/Files/misc/Aspell/bin/")

`(,(concat "~/Emacs/" "Files/misc/Aspell/bin/"))
     => ("~/Emacs/Files/misc/Aspell/bin/")
1 个赞

设置成list就可以了,谢谢! Emacs 是我设置的一个变量,要用到concat (setq exec-path (list (concat Emacs “Files/misc/Aspell/bin/”)))

如果要是必须用到'呢? 比如设置banner的时候: dotspacemacs-startup-banner '“e:/Emacs/Files/misc/logo.png” 我设置的变量Emacs 就是指e:/Emacs/,这不是我的Home目录,所以不能直接用~/ 现在我想用Emacs变量,不想用上面的绝对路径。

' 是让后面的对象当作一个常量,避免执行,字符串本身就是常量,再 ' 就多此一举了。

'"e:/Emacs/Files/misc/logo.png"
     => "e:/Emacs/Files/misc/logo.png"

"e:/Emacs/Files/misc/logo.png"
     => "e:/Emacs/Files/misc/logo.png"
(setq dotspacemacs-startup-banner (concat Emacs "Files/misc/logo.png"))
1 个赞

明白了,非常感谢。