zoukankan      html  css  js  c++  java
  • 8.16——熟悉vi编辑器

    一、vi是什么?

    vi:visual interface 的简称。Unix和Linux下的文本编辑器。

    二、vi的三种编辑模式

    1、一般模式:以vi处理文件时,一进入该文件就是一般模式了。在这个模式中,您可以使用上下左右按键来移动光标,可以使用“删除字符”(x,X)或“删除整行”(dd,ndd)来处理文件内容,也可以使用“复制”(yy,nyy,y1G,)、“粘贴”(p,P)来处理您的文件数据。

    2、编辑模式:您按下i,I,o,O,a,A,r,R等字母之后才会进入编辑模式。注意,通常在Linux中,按下上述字母后,在画面的左下方会出现INSERT或REPLACE字样,这才可以输入任何字符写入您的文件中。如果要回到一般模式,必须按下Esc键,才可退出。

    3、末行模式:在一般模式中,输入“:”或“/”就可以将光标移动到最末一行。在这个模式中,您可以搜寻数据,读取、存盘、大量字符替换、退出vi、显示行号等动作也是在此模式中完成。

    三、简单举例

    使用vi建立一个名为test.txt的文件很简单。
    (1)进入vi的一般模式;
    [root @test root]# vi test.txt
    一般模式:

    5). 复制
    [yw]:将光标所在之处到字尾的字符复制到缓冲区中。
    [#yw]:复制#个字到缓冲区
    [yy]:复制光标所在行到缓冲区
    [#yy]:例如,[6yy]表示拷贝从光标所在的该行“往下数”6行文字。
    [p]:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。


    查找,取代:/word,?word. /1,ns/word1/word2/g
    删除字符,删除整列:x,X dd ndd
    复制整列,粘贴整列:yy,nyy,y1G,yG.  p.P
    编辑模式:
    可输入任何字符
    末行模式
    读取、保存文件:w, :wq, :wq!, :w[filename], :r[filename] , :set nu,:setnonu.
    其他功能
    i,o,a,r

    :,/,?

    (2)按下i进入编辑模式,开始编辑文字;在一般模式中,只要按下I,o,a等字符,就可以进入编辑模式,如图9.3所示。模式中,您可以发现左下角会出现--INSERT-字样,这是可以输入任意字符的提示。

    (3)按下Esc键回到一般模式;按照上面的步骤编辑完毕之后,如何退出?按下Esc键即可。马上您会发现,画面左下角的– INSERT –不见了。

    (4)在一般模式中按下:wq,保存后退出vi。

    四、 常用指令

    一般模式 光标移动
    0 (这是数字0)移动到这一行的第一个字符处(常用)
    $ 移动到这一行的最后一个字符处(常用)
    G 移动到这个文件的最后一行(常用)
    nG 移动到这个文件的第n行。例如20G,则会移动到这个文件的第20
    行(可配合:set nu)
    n<Enter> 光标向下移动n行(常用)

    H 光标移动到这个屏幕最上方的那一行
    M 光标移动到这个屏幕中央的那一行
    L 光标移动到这个屏幕最下方的那一行
    一般模式 查找与替换
    /word 在光标之后查找一个名为word的字符串(常用)
    ?word 在光标之前查找一个名为word的字符串
    :n1,n2s/word1/word2/g 在第n1与n2行之间查找word1这个字符串,并将该字符串替换为
    word2(常用)
    :1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
    (常用)
    :1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为
    word2,且在替换前显示提示符让用户确认(conform)(常用)

    一般模式 删除、复制与粘贴
    x, X x为向后删除一个字符,X为向前删除一个字符(常用)
    nx 向后删除n个字符
    dd 删除光标所在的那一整列(常用)
    ndd 删除光标所在列的向下n列,例如,20dd则是删除20列(常用)
    d1G 删除光标所在行到第一行的所有数据
    dG 删除光标所在行到最后一行的所有数据
    yy 复制光标所在行(常用)
    nyy 复制光标所在列的向下n列,例如,20yy则是复制20列(常用)
    y1G 复制光标所在列到第一列的所有数据
    yG 复制光标所在列到最后一列的所有数据
    p, P p为复制的数据粘贴在光标下一行,P则为粘贴在光标上一行(常用)
    J 将光标所在列与下一列的数据结合成一列
    u 恢复前一个动作(常用)

    编辑模式

    i, I 插入:在当前光标所在处插入输入的文字,已存在的字符会向后退
    a, A 添加:由当前光标所在处的下一个字符开始输入,已存在的字符会向后退
    o, O 插入新的一行:从光标所在处的下一行行首开始输入字符(常用)
    r, R 替换:r会替换光标所指的那一个字符;R会一直替换光标所指的文字,知道按下ESC
    Esc 退出编辑模式,回到一般模式(常用)
    命令行模式 

    :w 将编辑的数据写入硬盘文件中(常用)

    :w! 若文件属性为只读,强制写入该文件
    :q 退出vi(常用)
    :q! 若曾修改过文件,又不想保存,使用!为强制退出不保存文件
    :wq 保存后退出,若为:wq!,则为强制保存后退出(常用)
    :w [filename] 将编辑数据保存为另一个文件(类似另存新文档)
    :r [filename] 在编辑的数据中,读入另一个文件的数据。亦即将filename这个文
    件内容加到光标所在行的后面
    :set nu 显示行号,设定之后,会在每一行的前面显示该行的行号
    :set nonu 与set nu相反,为取消行号
    n1,n2 w [filename] 将n1到n2的内容保存为filename这个文件。

    不长用的命令:(一般模式下)

    h 或 向左方向键 光标向左移动一个字符

    j 或 向下方向键 光标向下移动一个字符

    k 或 向上方向键 光标向上移动一个字符
    l 或 向右方向键 光标向右移动一个字符
    Ctrl + f 屏幕向前翻动一页(常用)
    Ctrl + b 屏幕向后翻动一页(常用)
    Ctrl + d 屏幕向前翻动半页
    Ctrl + u 屏幕向后翻动半页
    + 光标移动到非空格符的下一列
    - 光标移动到非空格符的上一列
    n<space> 按下数字后再按空格键,光标会向右移动这一行的n个字符。例如
    20<space>,则光标会向右移动20个字符

    亲爱的自己,不要抱怨自己不够聪明、没有天赋,要记住,越努力,越幸运!
  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/baiting0317/p/3263540.html
Copyright © 2011-2022 走看看