Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 让用户保持';在sudo模式下运行emacs时的配置_Php_Emacs_Syntax_Colors_Sudo - Fatal编程技术网

Php 让用户保持';在sudo模式下运行emacs时的配置

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模式下运行emacs,以编辑我的/var/www目录中的一些.html或.php文件。 当我在普通用户模式下运行它时,语法和颜色都没有问题(我安装了php-mode.el扩展)。不幸的是,当我在sudo模式下运行它时,我丢失了这个配置。 有办法把它拿回来吗

不幸的是,当我在sudo模式下运行它时,我失去了这个配置,这是令人伤心的

这完全是意料之中的事。使用
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配置?