我尝试使用Emacs、VSCode等(当然是使用sudo)编辑我的**/etc/hosts**文件,但它一直说我没有编辑该文件的权限。然后我尝试了Vim,Nano和Atom.这些都能够编辑和保存文件。(运行echo 'some host' | sudo tee -a /etc/hosts也很好)。为什么有些编辑器可以毫无问题地编辑文件,而有些则不行呢?
echo 'some host' | sudo tee -a /etc/hosts
cuxqih211#
尝试使用本地emacs打开C-x C-f /sudo::/etc/hosts。
C-x C-f /sudo::/etc/hosts
shyt4zoc2#
我真的不能提供答案,但我确定一件事:你应该避免在sudo模式下启动Emacs!使用另一个答案中提到的/sudo::/etc/hosts是一种选择,但我更喜欢使用sudo -e /etc/hosts,因为它更安全,可以从命令行运行。这将在默认编辑器中打开文件的副本,并在关闭时将其保存回来。要将默认编辑器设置为Emacs,请预先执行export EDITOR=emacsclient(我假设您已经启动了emacs-server)。无论如何,此设置都是一个好主意,因为它可以与许多其他命令行工具一起使用,因此您应该将其放在shell初始化配置中。通常我有一个shell别名e,用emacsclient打开一个普通的文件,E通过sudo -e打开它,这很容易记住。
/sudo::/etc/hosts
sudo -e /etc/hosts
export EDITOR=emacsclient
e
emacsclient
E
sudo -e
2条答案
按热度按时间cuxqih211#
尝试使用本地emacs打开
C-x C-f /sudo::/etc/hosts
。shyt4zoc2#
我真的不能提供答案,但我确定一件事:你应该避免在sudo模式下启动Emacs!
使用另一个答案中提到的
/sudo::/etc/hosts
是一种选择,但我更喜欢使用sudo -e /etc/hosts
,因为它更安全,可以从命令行运行。这将在默认编辑器中打开文件的副本,并在关闭时将其保存回来。要将默认编辑器设置为Emacs,请预先执行
export EDITOR=emacsclient
(我假设您已经启动了emacs-server)。无论如何,此设置都是一个好主意,因为它可以与许多其他命令行工具一起使用,因此您应该将其放在shell初始化配置中。通常我有一个shell别名
e
,用emacsclient
打开一个普通的文件,E
通过sudo -e
打开它,这很容易记住。