• vi编辑器


    vi3种模式

    1.命令模式:直接vi filename刚进入的模式就是命令模式
    2.底行模式:在命令模式按esc输入 : 或/  或? 到达的模式就是底行模式.在底行模式按回车键回到命令模式
    3.编辑模式:在命令模式按i a o任意一个进入的模式是编辑模式,在编辑模式按esc退回到命令模式  

    打开文件

    vi filename:新建文件打开或打开已有文件,光标停在首行
    vi +n filename :打开文件 ,光标停留在第n行
    vi -r filename:在上次使用vi编辑文件时发生系统崩溃,恢复文件
    

      

     底行模式命令

    :w:保存当前编辑内容
    :wq:保存并退出vi编辑器
    :q: 退出vi编辑器,如果文件已经更改未保存,则无法退出
    :q!:强制退出不保存
    :w!:强制保存
    :w filename :文件另存为一个新文件
    w >>filename:把文件追加到另外一个文件
    :set nu 显示行号。 底行模式的命令。
        
    :set nonu 不显示行号。 底行模式的命令。
        
    :1,2co3 拷贝1,2行在3行之后 底行模式的命令。
        
    :4,5m6 移动行4行5在行6之后。 底行模式的命令。
        
    :20 光标停留再第20行。 底行模式的命令。
    

      

    vi底行模式下替换内容

    语法:
    :首行数,末行数s/要替换的字符串/替换的字符串/g
    注意: 
    不加g只替换每行的一个要替换的字符串,后面的不会替换。
    在s前面加上'%'可以实现全文范围内替换
    
    1.将文件中所有的boy替换成girl
    :1,$s/boy/girl/g  或者  :%s/boy/girl/g
    
    2.将文件中第一行的第一个boy 替换成girl
    :1,1s/boy/girl/
    或者:s/boy/girl/  替换当前行的第一个内容
    
    3.将文件中第一行的第一个boy 替换成girl
    :1,1s/boy/girl/g
    或者:s/boy/girl/g  替换当前行的所有查找到的内容
    
    4.将文件中第2行至第5行的boy 替换成girl
    :1,5s/boy/girl/g
    
    5.将文件中第2行至尾行的boy 替换成girl
    :1,$s/boy/girl/g
    
    6.指定只在当前行至文件结尾间进行替换,把boy 替换成girl
    : .,$s/boy/girl/g
    点. 表示当前行
    
    7.指定只在后续9行内进行替换,把boy 替换成girl
    :.,.+8s/boy/girl/g
    
    8.语法总结
    :s/vivian/sky/ 替换当前行第一个 vivian 为 sky   
    :s/vivian/sky/g 替换当前行所有 vivian 为 sky
    :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
    :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
    n 为数字,若 n 为 .,表示从当前行开始到最后一行
    :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
    :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
    

      

    命令模式

    a:在当前的右侧插入数据
    dd:删除一行数据
    dw:删除一个单词
    
    5dd删除当前和下面的加起来5行
    
    D:从光标处删除到行尾
    
    ndw:删除n个字符
    
    1,100d:从第一行删除到第100行,底行命令模式
    
    x:光标处删除一直到按下esc键。
    
    r:替换一个字符
    
    yy:复制一行
    
    p:粘贴 
    
    i :在光标处插入内容
    
    I :在当前行首
    
    a:在光标后插入内容
    
    A:在当前行尾
    
    o:在当前行之下插入内容
    
    O:在当前行之上新开一行
    
    r:替换当前字符
    
    R:替换当前字符及其后的字符,直至按ESC键
    
    s:从当前光标位置处开始,以输入的文本替代指定数目的字符 例:5s
    
    S:替换光标所在的行
    
    c:清除一个字符
    
    cw:清除一个单词 
    
    J:把当前行和下一行连起来
    
    u:撤销上一步操作
    

      

     查找内容

    底行模式下输入  /内容,按回车键
    
    /pattern 从当行往下查找匹配字符 底行模式的命令
    ?pattern 从当前往上查找匹配字符 底行模式的命令
    非底行模式命令
    输入k在当前行向上查找行号 输入回车在当前行向下查找行号
    输入n在当前行向上或者向下查找对应值
    输入G直接查找到文件最后一个匹配到的地方
    

      

     

     

     

  • 相关阅读:
    pyspider 在ubuntu上安装失败怎么搞?
    怎么在项目中使用前端包管理器bower和构建工具gulp
    Asp.net mvc 实时生成缩率图到硬盘
    如果转载优酷、土豆视频等,怎么让视频自适应宽度?
    C语言II博客作业04
    C语言I博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    The first essay
  • 原文地址:https://www.cnblogs.com/joanna123/p/12182331.html
Copyright © 2020-2023  润新知