我在许多不同的机器和 VM 上工作,每个机器和 VM 都可能对.emacs
. 我有一个 Git 存储库/子目录.common-system
,其中包含第二个 Emacs Lisp 文件.common-system/emacs
,其中包含用于我所有系统的通用定义。
我可以对.emacs
哪些将自动加载和eval
我的辅助定义文件进行哪些更改?启动后将辅助文件保留在我的缓冲区列表之外的奖励积分。
我在许多不同的机器和 VM 上工作,每个机器和 VM 都可能对.emacs
. 我有一个 Git 存储库/子目录.common-system
,其中包含第二个 Emacs Lisp 文件.common-system/emacs
,其中包含用于我所有系统的通用定义。
我可以对.emacs
哪些将自动加载和eval
我的辅助定义文件进行哪些更改?启动后将辅助文件保留在我的缓冲区列表之外的奖励积分。
你有没有尝试过:
(load-file ".common-system/emacs")
如果您指定文件的完整路径,它会更好(如Stefan建议的那样),例如
(load-file "~/.common-system/emacs")
如果您坚持使用当前的存储库布局,则使用load-file
(如其他人所建议的那样)是要走的路。
但是,如果您命名您的顶级目录.emacs.d
并将文件init.el
放入其中,Emacs 将找到它并自动运行它。这样,您不必.emacs
在使用的每个系统上手动编辑文件。
您使用 (cond),调度变量,例如用户登录名、系统类型和系统名称
(cond
((equal user-login-name
"myname")
;; Stuff
)
((equal system-type 'gnu/linux)
(require 'some-file)
;; some-file, could be any file in load-path, named some-file.el, and ending
;; with (provide 'some-file)
))