Vim如何保存需要root权限的文件
2016-03-10 09:58
405 查看
转自: http://feihu.me/blog/2014/vim-write-read-only-file/
在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行
这表明文件是只读的,按照提示,加上
文件明明存在,为何提示无法打开?这错误又代表什么呢?查看文档
原来是可能没有权限造成的。此时你才想起,这个文件需要root权限才能编辑,而当前登陆的只是普通用户,在编辑之前你忘了使用
但这样操作过于繁琐。而且如果只是想暂存此文件,还需要接着修改,则希望保留Vim的工作状态,比如编辑历史,buffer状态等等,该怎么办?能不能在不退出Vim的情况下获得root权限来保存这个文件?
答案是可以,执行这样一条命令即可:
在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行
:wq保存退出,突然蹦出一个错误:
E45: 'readonly' option is set (add ! to override)
这表明文件是只读的,按照提示,加上
!强制保存:
:w!,结果又一个错误出现:
"readonly-file-name" E212: Can't open file for writing
文件明明存在,为何提示无法打开?这错误又代表什么呢?查看文档
:help E212:
For some reason the file you are writing to cannot be created or overwritten. The reason could be that you do not have permission to write in the directory or the file name is not valid.
原来是可能没有权限造成的。此时你才想起,这个文件需要root权限才能编辑,而当前登陆的只是普通用户,在编辑之前你忘了使用
sudo来启动Vim,所以才保存失败。于是为了防止修改丢失,你只好先把它保存为另外一个临时文件
temp-file-name,然后退出Vim,再运行
sudo mv temp-file-name readonly-file-name覆盖原文件。
但这样操作过于繁琐。而且如果只是想暂存此文件,还需要接着修改,则希望保留Vim的工作状态,比如编辑历史,buffer状态等等,该怎么办?能不能在不退出Vim的情况下获得root权限来保存这个文件?
解决方案
答案是可以,执行这样一条命令即可::w !sudo tee %
相关文章推荐
- 使用Eclipse生成generated serial version ID的时候,Eclipse弹出出错信息
- 关于request.getServletPort()获取访问地址的说明
- 第一次上机实验2
- mysql中 show table status 获取表信息
- sublime的安装和相关插件的安装
- string拼接和StringBuilder性能对比
- Android基础之Process
- php伪静态
- mysql小结
- ASP.NET学习资料
- Python&Eclipse环境搭建
- ES6中非常实用的新特性介绍
- Java实现从字符串中找出数字字符串的方法小结
- javascript与jQuery
- html5拖放
- Android开发之使用事务
- Linux用户(User)和用户组(Group)管理命令
- java中jdk与jre的关系以及环境变量配置时Java_Home\Path\ClassPath各代表什么意思
- 3.C#中的多重委托
- 正则表达式基本元字符,其中包括通配符,范围和闭包