当以普通用户身份运行时, Emacs.emacs.d/init.el
可以正常加载我的启动文件,但当以 身份运行时,它拒绝加载它。我尝试将sudo emacs file.type
的所有者更改为,但没有成功。.emacs.d
root
答案1
我有点离题了,但您可以以普通用户的身份使用 Emacs,然后以 root 身份使用 tramp 打开文件:
C-xC-f /sudo::/path/to/file
将要求您输入 sudo 密码,并以 root 身份打开该文件。
答案2
当您以sudo
add 身份运行-s
以保留您的环境时。它不会维护您的环境,因此您的HOME
目录会丢失。 Emacs 看起来 ~/.emacs, ~/.emacs.el, or ~/.emacs.d/init.el
,因此如果您丢失了 HOME,您就会丢失启动文件的路径。
答案3
sudo -s 对我来说不起作用。这是我使用的解决方法。
以普通用户身份加载 emacs(这样你的设置才会生效)
- 类型
M-x customize-themes
- 使用链接将您的设置迁移到主题。
- 给你的主题起个名字。(我取消了从自定义保存文件中删除已保存的主题设置。不知道这是否会影响它)
- 单击保存主题并记下主题的保存位置。
- 退出 emacs 并将主题文件复制到默认 emacs 主题文件夹(例如 ./usr/share/emacs/24.4/etc/themes/)
- 现在,使用 sudo 打开 emac。
- 再次输入
M-x customize-themes
,您就会看到新创建的主题可供选择。 - 单击“保存主题设置”,您的 sudo 会话现在将使用您的自定义主题。
我希望有一种更优雅的方法来解决这个问题,但它可以完成工作。
答案4
jmq 的想法是正确的,问题是因为 emacs 在 ~/ 目录中查找您的 .emacs 文件和您安装的脚本。
他的建议是sudo -s
,如果可行,是最简单的,但很有可能行不通。问题实际上在于你的sudoers
设置方式。sudoers
设置可能会重置你的环境,这意味着它在运行 sudo 命令时不会为用户保留 HOME 目录。可能的选项如下这里作为最受好评的回应,并且使用-s
无法解决大多数sudoers
会首先搞砸它的设置。