通常在编辑配置文件时,我会用vi打开一个,然后当我保存它时,我意识到我没有输入
sudo vi filename
有没有办法给vi sudo特权来保存文件?我好像记得之前在查vi的时候看到过这个,但是现在找不到了。
通常在编辑配置文件时,我会用vi打开一个,然后当我保存它时,我意识到我没有输入
sudo vi filename
有没有办法给vi sudo特权来保存文件?我好像记得之前在查vi的时候看到过这个,但是现在找不到了。
当前回答
一般来说,你不能改变vi进程的有效用户id,但是你可以这样做:
:w !sudo tee myfile
其他回答
我在~/.bashrc中有这个:
alias svim='sudo vim'
现在,每当我需要编辑配置文件时,我只需用svim打开它。
您可以考虑的一个快速hack是对正在编辑的文件执行chmod,用vim保存,然后chmod到文件的原始状态。
ls -l test.file (to see the permissions of the file)
chmod 777 test.file
[This is where you save in vim]
chmod xxx test.file (restore the permissions you found in the first step)
当然,我不建议在您担心安全性的系统中使用这种方法,因为在几秒钟内任何人都可以在您不知情的情况下读取/更改文件。
一般来说,你不能改变vi进程的有效用户id,但是你可以这样做:
:w !sudo tee myfile
一个快速谷歌似乎给出了这样的建议:
如果它是只读的,不要尝试编辑。 您可以更改文件的权限。(它是否能让你省钱取决于试验。) 如果你仍然编辑,保存到一个临时文件,然后移动它。
http://ubuntuforums.org/showthread.php?t=782136
这是另一个在回答这个问题后出现的插件,一个名为SudoEdit的插件,它提供SudoRead和SudoWrite函数,默认情况下将首先尝试使用sudo,如果失败则尝试使用su: http://www.vim.org/scripts/script.php?script_id=2709