zoukankan      html  css  js  c++  java
  • vim 用sudo 进行保存的终极奥义

    经常使用vim忘记了不是root , 而提示没有写入权限的情况,所以查询一下,相关命令是:

    :w !sudo tee %
    

      

    那么这条命令是如何理解的呢?

    首先 ,vim 写入文件是

    :w [文件名]
    

      

    这里的文件名也可以是设备,比如 /dev/stdin /dev/stdout

    我们没有权限,先把内容写到 `/dev/stdin` ,

    其次 理解tee的含义,就是把从 stdin 读取的内容重定向到某一个文件,类似于 `>>` 符号,但 你无法使用 `sudo >>` ,所以 tee 是 >或 >> 的一个替代命令, >和>> 或者< 和<< 根本不是命令,

    所以 sudo tee [文件名],就是从标准stdin 来写入到[文件名]。

    在vim 命令模式下, `%` 就是 当前的文件名,是一个当前文件名的快速替换品,或者说是环境变量也可以。

    `sudo tee %` 就是 把内容写入到当前文件。

    所以 合并两面两点,vim 先写入到 一个能返回 stdin 的命令,这个命令就是 sudo tee % , 为了调用这个命令,前面加一个感叹号

    如果换成shell,其实上面的命令就是

    echo ${文件_Buff}  | sudo tee ${文件名}  

    这样就能解释并记住这个命令了:  

    :w !sudo tee %
    

      

    理解tee的含义,就是把从 stdin 读取的内容重定向到某一个文件,类似于 `>>` 符号,但 你无法使用 `sudo >>` ,所以 tee 是 >或 >> 的一个替代命令, >和>> 或者< 和<< 根本不是命令,

  • 相关阅读:
    学习笔记
    .net $&替换正则查找到的内容
    sql 常用日期函数
    2010学习计划
    优化存储过程
    sql server 标量值函数
    job88数据库操作
    .net 调用有返回值的存储过程
    GridView 18种操作
    SQLite的局限性
  • 原文地址:https://www.cnblogs.com/ayanmw/p/12769655.html
Copyright © 2011-2022 走看看