这是我的尝试:
(if (eq system-type 'gnu/linux)
(load "/usr/share/emacs/site-lisp/site-gentoo")
(require 'site-gentoo))
Run Code Online (Sandbox Code Playgroud)
但无论如何我在Windows上收到错误:
/.emacs':
File error: Cannot open load file, site-gentoo
Run Code Online (Sandbox Code Playgroud)
您的问题与您使用的方式有关if:它的文档说它是
(if COND THEN ELSE...)
Run Code Online (Sandbox Code Playgroud)
即(require 'site-gentoo),只有当它不是 GNU/Linux系统时才会被执行.
when相反,使用它应该做你想要的.
而且,实际上应该没有必要同时使用load和require,它们的使用应该有同样的结果.差异主要是require搜索load-path并且不再加载之前已经加载过的东西.