如何只在linux中加载模块?

cnd*_*cnd 0 emacs elisp

这是我的尝试:

(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)

Rör*_*örd 9

您的问题与您使用的方式有关if:它的文档说它是

(if COND THEN ELSE...)
Run Code Online (Sandbox Code Playgroud)

(require 'site-gentoo),只有当它不是 GNU/Linux系统时才会被执行.

when相反,使用它应该做你想要的.

而且,实际上应该没有必要同时使用loadrequire,它们的使用应该有同样的结果.差异主要是require搜索load-path并且不再加载之前已经加载过的东西.