学习vim命令:“:w !sudo tee %”

学习vim命令:“:w !sudo tee %”

Original URL:http://www.haw-haw.org/node/1501

原文来自于commandlinefu

原文是这样解释这个命令的:

在vim中保存正在编辑的文件而不需要必要的权限。

(Save a file you edited in vim
without the needed permissions)

下面我们就分析下这条命令是怎样做到保存文件而不需要必要的权限的

:w !sudo tee %

man vim就会发现

百分号(“%”)代表当前文件名

根据man vim的提示:

:[range]w[rite] !{cmd}
 Execute {cmd} with [range] lines as standard
input

(note the space in front of the
‘!’).  {cmd} is

executed like with “:!{cmd}”, any
‘!’ is replaced with

the previous command

“:w !sudo tee
%”这条命令的含义是把当前编辑的文件的内容当做标准输入输入到命令sudo tee 文件名里去

也就是sudo保存为当前文件名

这个功能其实可能debian和ubuntu的用户更需要一些

因为我们都是直接root

常常忘记了sudo就直接用vim编辑/etc内的文件,(不过也不一定,vim发现保存的文件无法保存时候会提示)等编辑好了,保存时候才发

现没权限。曲线方法是先保存个临时文件,退出后再sudo
cp回去。不过实际上在vim里面可以直接完成这个过程的,命令就是如此。

查阅vim的文档(输入:help
:w),会提到命令:w!{cmd},让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。

tee是一个把stdin保存到文件的小工具。

而%,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。

时间: 2024-08-04 20:45:22

学习vim命令:“:w !sudo tee %”的相关文章

Linux学习-VIM命令编辑

VIM命令编辑 普通模式 vim + 文件 进入时就是正常模式 ESC 按 ESC 可回到正常模式 i 进入编辑模式,末行提示"插入",可插入文本 I 或 shift + i 进入编辑模式,光标停在当前行开头 a 进入编辑模式,光标会停留在前一次光标的下一个位置 A 进入编辑模式,光标停留在当前行的结尾 o 进入编辑模式,向下插入一行,光标停在开头 O 或 shift + o 进入编辑模式,向上插入一行,光标停在开头 hjkl 光标上左右下移动 p 粘贴,向下插入一行并粘贴 yy 复制

15个不起眼但非常强大的 Vim 命令

如果我的关于这个话题的最新帖子没有提醒到你的话,那我明确地说,我是一个 vim 的粉丝.所以在你们中的某些人向我扔石头之前,我先向你们展示一系列“鲜为人知的 Vim 命令”.我的意思是,一些你可能以前没有碰到过的命令,但可能对你来说很有用.作为第二免责声明,我不知道哪些命令是你可能知道的,以及哪些是对你来说有用的.因此这些命令实际上是一些相对少见,但很可能很有用的 Vim 命令. 保存文件并退出 说起来有些惭愧,我也是最近才学到这个命令 : x 和下面的命令是等价的: : wq 都是保存当前文件

一些不起眼但非常有用的 Vim 命令

保存文件并退出 说起来有些惭愧,我也是最近才学到这个命令 ?? 和下面的命令是等价的: :wq 都是保存当前文件并退出. (译者注:这两个命令实际上并不完全等价,当文件被修改时两个命令时相同的.但如果未被修改,使用 ?? 不会更改文件的修改时间,而使用 :wq 会改变文件的修改时间.) 基本计算器 在插入模式下,你可以使用 Ctrl+r 键然后输入 =,再输入一个简单的算式.按 Enter 键,计算结果就会插入到文件中.例如,尝试输入: Ctrl+r '=2+2' ENTER 然后计算结果“4

vim命令、快捷键

http://blog.csdn.net/pipisorry/article/details/23515091 vi /vim介绍 可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息. 可以说vim 是个"程序编辑器"!甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查! 简单的来说, vi 是老式的文书处理器,不过功能已经很齐全了,但是还是有可以进步的地方. vim 则可以说是程序开发者的一项很好用的工具,就连 vim 的官方

【转】一些不起眼但非常有用的 Vim 命令

如果我的关于这个话题的最新帖子没有提醒到你的话,那我明确地说,我是一个 Vim 的粉丝.所以在你们中的某些人向我扔石头之前,我先向你们展示一系列“鲜为人知的 Vim 命令”.我的意思是,一些你可能以前没有碰到过的命令,但可能对你来说很有用.作为第二免责声明,我不知道哪些命令是你可能知道的,以及哪些是对你来说有用的.因此这些命令实际上是一些相对少见,但很可能很有用的 Vim 命令. 保存文件并退出 说起来有些惭愧,我也是最近才学到这个命令 :x 和下面的命令是等价的: :wq 都是保存当前文件并退

Vim 命令整理

1. 文件命令 2. 模式切换 3. 移动命令 4. 书签命令 5. 修改命令 6. 可视化操作 7. 区域选择 8. 宏命令 9. 分屏 10. 系统设置命令 1. 文件命令 [:]开始的命令需要输入[Enter]结束 :q:退出 :q!:退出不保存 :qa!:退出所有文件不保存 :w:保存 :e <file>:关闭当前文件并打开另一个文件 :saveas <file>:另存为<file> :wq 或 :x 或 ZZ:保存并退出(ZZ不需要冒号[:]) :bn或:n:

vi/vim命令详解

基础命令学习目录首页 原文链接:https://www.cnblogs.com/mondol/p/vi-examples.html 进入vi vi filename # 打开或新建文件,并将光标置于第一行首 vi +n filename # 打开文件,并将光标置于第n行首 vi + filename # 打开文件,并将光标置于最后一行首 vi +/pattern filename # 打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename # 在上次正用vi编辑时发

最常用的linux命令(包括svn和vim命令)

本盘讲述linux环境最常用的一些命令,包括svn版本控制使用的命令和vim编辑命令.本文为原创,如需转载,请著名来源:http://blog.csdn.net/qq_22327455 1.目录跳转:cd 2.查看:ll    ls 3.连接服务器:ssh 用户名@id地址  如:ssh [email protected] 4.查看ip地址等信息:ifconfig 5.备份文件: 备份单个文件:cp 文件名  新的文件名   如:cp index.php  index_01.php 备份目录:c

一张图学习vim常用命令

一张图学习vim常用命令