zoukankan      html  css  js  c++  java
  • 学习vim命令:“:w !sudo tee %”

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

    原文来自于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当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。
    每天一小步,人生一大步!Good luck~
  • 相关阅读:
    Linux Window Redis安装
    Mysql 死锁的详细分析方法
    mariadb rpm 安装
    我希望我能做到:我只是认真--做技术的人,对待技术,应该拥有什么样的态度?
    Google140道面试题
    mysql my.cnf配置文件详解
    Linux iostat字段解析
    Linux mpstat字段解析
    Selenium入门8 js调用
    Selenium入门7 内嵌框架iframe
  • 原文地址:https://www.cnblogs.com/jkmiao/p/5553837.html
Copyright © 2011-2022 走看看