linux下vi的使用

在Linux下太多的命令都默认使用vi作为数据编辑的接口,所以必须要学会使用vi下的基本命令~

vi一般有三种模式:一般模式、编辑模式、命令行模式

模式切换

  • 1、使用vi进入一般模式
  • 2、按下i,进入编辑模式
  • 3、按下[ESC]回到一般模式
  • 4、在一般模式下输入“:wq”保存后离开vi

按键说明


一)一般模式下按钮说明:光标移动,复制粘贴,查找替换

                                           移动光标的方法
1、屏幕向下移动一页
    ctrl+f或者键盘右下角“PgDn”
2、屏幕向上移动一页
    ctrl+b或者键盘右下角“PgUp”
3、当前行的光标移动到最前面字符处
    0
4、当前行的光标移动到最后面字符处
    $
5、移动到文件末尾(最后一行)
    G(即:shift+g)
6、移动到文件的第一行
    gg(也可以1G)
7、光标向下移动n行,n为数字,例如2+回车键:向下移动2行
    n[ENTER]
8、复原上一个操作
    u 例如:eg:使用命令dd删除了一行‘123’,这时可能是误操作,那么恢复操作,就使用u,被删除的一行‘123’就又出现了
9、重复执行上一个操作
    ctrl+r 然后点击‘.’
                                            查找与替换

1、向下寻找"/"
    /word--向下寻找word
2、向上寻找“?”
    ?word

    --->n:重复前一个查找动作,例如/word,然后n,则表示向下查找下一个word
    --->N:反向进行前一个查找动作,例如/word,然后按N,则表示向上查找下一个
3、在第n1与n2行之前寻找word1字符串并替换为word2(n1,n2为数字)
    :n1,n2s/word1/word2/g
    eg:100到200行之间查找hell并替换为HELLO--->:100,200s/hello/HELLO/g
4、第一行到最后一行之间查找并替换
    :1,$s/word1/word2/g
5、在替换前显示提示字符给用户进行确认confirm
    :1,$s/word1/word2/gc
                                            删除、复制与粘贴

1、x为向后删除一个,光标在当前字符上就删除当前字符(相当于del),X为向前删除一个字符(相当于backspace)
2、删除光标所在的那一行
    dd
3、删除包含光标所在行的向下的n行
    ndd eg:3dd,删除包含光标所在行共3行,也就是光标行和以下2行
4、删除光标所在行到第一行的数据(包含光标所在行)
    d1G
5、删除光标所在行到最后一行的数据(包含光标所在行)
    dG
6、删除光标所在处到这一行的最后一个字符(包含光标所在字符)
    d$
7、删除光标所在处到这一行的第一个字符(包含光标所在字符)
    d0
8、复制光标所在的那一行
    yy--->复制一行,输入yy然后p,在下一行粘贴
9、复制包含光标所在行在内的n行
    nyy 然后点击p
    p,-->表示将已复制的数据在光标下一行粘贴
    P,-->表示将已复制的数据在光标上一行粘贴

二)一般模式切换到编辑模式

* 1、i,I 进入编辑模式
    i为从目前光标处插入,I:光标所在行的第一个非空格字符处插入(一般是行首)
* 2、a,A 进入编辑模式
    a为目前字符的下一个字符开始插入,A为光标行的最后一个字符处开始插入
* 3、o,O 进入编辑模式
    o目前光标所在下一行输入,O,表示在目前光标所在处上一行输入
* 4、r,R 进入替换模式
    r替换光标所在的字符一次,R会一直替换光标所在的字符,知道按下ESC键退出
* 5、【ESC】
    退出编辑模式

三)一般模式切换到命令行模式

* 1、将编辑的输入写入到硬盘文件
    :w
* 2、若文件为只读时,强制写入该文件
    :w!
* 3、不保存退出
    :q
* 4、强制离开不保存
    :q!
* 5、保存离开
    :wq   :wq!强制保存离开
* 6、显示行号
    :set nu
* 7、不显示行号
    :set nonu
原文地址:https://www.cnblogs.com/zhuyue1/p/6774416.html