Php 让用户保持';在sudo模式下运行emacs时的配置
我必须在sudo模式下运行emacs,以编辑我的/var/www目录中的一些.html或.php文件。 当我在普通用户模式下运行它时,语法和颜色都没有问题(我安装了php-mode.el扩展)。不幸的是,当我在sudo模式下运行它时,我丢失了这个配置。 有办法把它拿回来吗 不幸的是,当我在sudo模式下运行它时,我失去了这个配置,这是令人伤心的 这完全是意料之中的事。使用Php 让用户保持';在sudo模式下运行emacs时的配置,php,emacs,syntax,colors,sudo,Php,Emacs,Syntax,Colors,Sudo,我必须在sudo模式下运行emacs,以编辑我的/var/www目录中的一些.html或.php文件。 当我在普通用户模式下运行它时,语法和颜色都没有问题(我安装了php-mode.el扩展)。不幸的是,当我在sudo模式下运行它时,我丢失了这个配置。 有办法把它拿回来吗 不幸的是,当我在sudo模式下运行它时,我失去了这个配置,这是令人伤心的 这完全是意料之中的事。使用sudo运行命令时,您是以不同的用户身份运行它,通常是root。在大多数情况下,将使用目标用户的配置 有办法把它拿回来吗 我认
sudo
运行命令时,您是以不同的用户身份运行它,通常是root
。在大多数情况下,将使用目标用户的配置
有办法把它拿回来吗
我认为这里最好的选择是正常运行Emacs,然后使用root
编辑文件。在这种情况下,我认为在文件前面加上/sudo::
就可以了,例如C-x C-f/sudo::/var/www/html/foo.php RET
。Emacs将提示您输入密码,就像命令行上的sudo
一样
TRAMP的功能远不止允许您通过
sudo
以root
的身份编辑某些文件,而且可能值得您花时间浏览它的手册。您不太可能需要运行sudo emacs
,不必要地以root身份运行东西是一种不好的做法
sudoedit
命令/sudo-e
选项用于编辑其他用户拥有的文件。手册(man sudo
)中对-e
选项的说明中描述了将要使用的编辑器:
运行策略指定的编辑器来编辑临时文件。sudoers策略使用SUDO_编辑器、VISUAL和EDITOR环境变量(按该顺序)。如果未设置SUDO_EDITOR、VISUAL或EDITOR,则使用EDITOR sudoers(5)选项中列出的第一个程序
使用这种方法,您将以普通用户的身份编辑文件,从而使用普通编辑器配置进行编辑
或者,根据Chris的回答,使用Emacs中内置的Tramp方法(如果您正在编辑许多文件,这很可能更简单)
如果这些文件基本上需要具有写访问权限,也许您应该将自己分配给具有写访问权限的组。检查您和root是否具有相同的vi别名:
alias vi
vs.sudo alias vi
是的,我通过在.zshrc文件中设置启用了root的别名:alias sudo=“sudo”但是,我不明白为什么会有帮助。而且,我没有使用vim@Alexander,为什么vi
上的别名与Emacs有关?我指的是Emacs,而不是vi。你有Emacs的别名吗?或者您是否为root用户和本地用户提供了不同的emacs配置?