zoukankan      html  css  js  c++  java
  • 【转载】vi常用命令

    vi 常用命令

    1.vi 模式
       a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.
       b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。等按下‘i,I,o,O,a,A,r,R’等
              字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现'INSERT'或者‘REPLACE’字样,才可以
              输入任何文字到文件中.要回到一般模式,按下[ESC]键即可.
       c) 命令行模式:在一般模式中,输入“: 或者/或者?”,即可将光标移动到最下面一行,在该模式下,您可以搜索数据,而且读取,
          存盘,大量删除字符,离开vi,显示行号等操作.
    2.vi 常用命令汇总:
     2.1 一般模式
        a) 移动光标: 
          --> 上下左右方向键 ↑↓← →
          --> 翻页 pagedown / pageup 按键
          --> 数字 0 : 将光标移动到当前行首
          --> $ :   将光标移动到当前行尾
          --> G :       移动到这个文件的最后一行  nG :  n 为数字,移动到这个文件的第n行.
          --> gg:      移动到这个文件的第一行 相当于 1G
        
        b)  搜索与替换
          --> /word :  从光标开始,向下查询一个名为word的字符串。
          --> :n1,n2s/word1/word2/g : n1 与n2 为数字.在第n1与n2行之间寻找word1这个字符串,
                  并将该字符串替换为word2。
          --> :1,$s/word1/word2/g : 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2
          --> :1,$s/word1/word2/gc: 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2。
                并且在替换之前显示提示符给用户确认(conform)是否需要替换。
        c) 删除,复制,粘贴
          --> x,X  : 在一行中,x为向后删除一个字符(相当于del键),X为向前删除一个字符(相当于backspace键)。
          --> dd   : 删除光标所在的那一整行。
          --> ndd  : n 为数字。从光标开始,删除向下n列。
          --> yy   : 复制光标所在的那一行。   
          --> nyy  : n为数字。复制光标所在的向下n行。
          --> p,P  : p 为将已复制的数据粘贴到光标的下一行,P则为贴在光标的上一行。
          --> u    : 复原前一个操作
          --> CTRL + r : 重做上一个操作。
          --> 小数点'.': 重复前一个动作。
     2.2  编辑模式:
        a) i, I : 在光标所在处插入输入文字,已存在的文字向后退。i 为‘从当前光标所在处插入’,I 为‘在当前所在行的一个非空格符处开始插入’。
        b) a, A : a 为‘从当前光标所在处的下一个字符开始插入’。A 为‘从光标所在行的最后一个字符处开始插入’。
        c) o,O  : 这是英文o的大小写。o为‘在当前光标所在行的下一行处插入新的一行’。O表示‘在当前光标所在行的上一行插入新的一行’。
        d) r,R  : 替换:r 会替换光标所在的那一个字符。 R : 会一直替换光标所在的字符,直到按下esc 键为止。
        e) ESC  : 进入一般模式。
     2.3 命令模式:
        a) :w   : 将编辑的数据写入硬盘
        b) :q   : 离开vi
        c) :q!  : 强制离开,不存储
        d) :wq  : 存储后离开
        e) :wq! : 强制存储后离开

     3  练习
        1.在/tmp目录下建立vitest目录,将/etc/man.config复制到vitest中
        2.用vi 打开该文件
        3.在vi中设置行号
        4.移动到第58行,向右移动40个字符,看到引号内容是?
        5.移动到第一行,向下搜索"bzip2",在第几行
        6.将50-100行间的man改为MAN,交互模式
        7.修改完后,复原有集中方式?
        8.复制51-60行内容到最后一行后
        9.删除11-30之间的20行
        10.另存为 man.test.config
        11.移动到29行,删除15个字符
        12.存储退出
        
        answer:
        1.mkdir vitest;cp /etc/man.config /tmp/vitest
        2.vi man.config
        3.set nu
        4.58G,40→,"/dir/bin/foo"
        5.gg,/bzip2,116
        6.:50,100s/man/MAN/gc
        7.u,:q!
        8.51G,10yy,G,p
        9.11G,20dd
        10.:w man.test.config
        11.29G,15x
        12.:wq!

    转载自:http://www.cnblogs.com/sunormoon/archive/2012/02/10/2345326.html

    ========================================================== 踏踏实实做事,健健康康生活=========================================================
  • 相关阅读:
    Android 音频播放——AudioTrack直接播PCM、MediaPlayer播媒体文件可以是audio
    Android 音频采集——MediaRecord(编码后录影文件) 、AudioRecord(PCM原始数据)
    .Net 下利用ICSharpCode.SharpZipLib.dll实现文件压缩、解压缩
    调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "C:Program Files (x86)HeliconISAP
    SQL1117N 因为处于 ROLL-FORWARD PENDING
    asp.net配置IIS过程错误解决
    IIS发布一些问题
    为具有端口 "50000" 的服务名称 "db2c_DB2" 而更新系统上的服务文件时出错
    IIS Server Application Unavailable
    db2堆中没有足够的存储器可用来处理语句的解决
  • 原文地址:https://www.cnblogs.com/ikuman/p/3127014.html
Copyright © 2011-2022 走看看