以 sudo 身份运行时,Emacs 未加载初始化文件

以 sudo 身份运行时,Emacs 未加载初始化文件

当以普通用户身份运行时, Emacs.emacs.d/init.el可以正常加载我的启动文件,但当以 身份运行时,它拒绝加载它。我尝试将sudo emacs file.type的所有者更改为,但没有成功。.emacs.droot

答案1

我有点离题了,但您可以以普通用户的身份使用 Emacs,然后以 root 身份使用 tramp 打开文件:

C-xC-f /sudo::/path/to/file

将要求您输入 sudo 密码,并以 root 身份打开该文件。

答案2

当您以sudoadd 身份运行-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会首先搞砸它的设置。

相关内容