弄清楚 emacs 认为你是谁有点棘手。来自信息:
更准确地说,Emacs 首先确定要使用哪个用户的 init 文件。它从环境变量 LOGNAME 和 USER 中获取您的用户名;如果这些都不存在,则它使用有效的用户 ID。如果该用户名与真实用户 ID 匹配,则 Emacs 使用 `HOME';否则,它会在系统的用户数据库中查找与该用户名对应的主目录。
所以我首先要找出 emacs 认为你是谁,通过在不加载任何 init 文件的情况下启动 emacs:
emacs -q
然后找出emacs认为你的init文件在哪里:
(locate-user-emacs-file "yourrealusername")
我认为在新的家庭环境中,它将默认为 ~/.emacs.d/yourusername,但这应该有助于您确定最好的位置放置 init 文件。
重要的一点是拥有一个 emacs用户目录而不仅仅是一个启动文件是一个很好的做法。emacs 需要跟踪大量额外的信息(包管理、自定义设置、备份文件、字典、手动插入的 lisp 代码等),我发现将所有这些东西放在一个位置非常有用。如果 Emacs 在系统上看不到 ~/.emacs 或 ~/.emacs.el,它会查找 ~/.emacs.d/init.el。确保您仍然没有 ~/.emacs。
创建一个名为 ~/.emacs.d/init.el 的新文件
把这个放进去:
(setq user-emacs-directory "~/.emacs.d/")
(message "This is my init.el file and noone elses!!!")
(inhibit-default-init) ;; there might be a default.el lurking somewhere
如果 emacs 获得了您的用户名和主页,您可以使用以下命令重新启动:
emacs -u therealme
或者,如果它填满了环境变量
env HOME=/this/is/my/home USER=blah emacs
可能有一个 site-start.el 可能会在您的 init.el 之前加载。如果您怀疑这一点,使用 --no-site-file 选项加载 emacs 会解决这个问题。