• 学习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~
  • 相关阅读:
    [Clr via C#读书笔记]Cp4类型基础
    [Clr via C#读书笔记]Cp3共享程序集和强命名程
    [Clr via C#读书笔记]Cp2生成打包部署和管理应用程序和类型
    [Clr via C#读书笔记]Cp1CLR执行模型
    试用Markdown来写东西
    字符编码的总结
    常去的网站
    Click Once使用总结
    【LevelDB源码阅读】Slice
    【程序员面试金典】面试题 01.05. 一次编辑
  • 原文地址:https://www.cnblogs.com/jkmiao/p/5553837.html
Copyright © 2020-2023  润新知