Linux中vi(vim)的常用指令

vi分为三种模式,分别是  一般指令模式、编辑模式、指令列命令模式。

从终端使用vi打开文本文件(如果打开的文件不存在,vi会自动建立这个文件)默认进入一般指令模式。
按【i,I,o,O,a,A,r,R】任何一个字母进入编辑模式。
按ESC退出编辑模式进入一般指令模式。
按Ctrl + 【;】  进入指令列命令模式。

一般指令模式下的快捷键(注意区分大小写):
  

    [Ctrl] + [f]     : 屏幕向下移动一页
    [Ctrl] + [b]     : 屏幕向上移动一页
    0 或 Home        : 移动到这一列的最前面字符处
    $ 或 End         : 移动到这一列的最后面字符处
    G                : 移动到这个文件的最后一列
    nG               : 移动到文件的第n列
    gg               : 移动到这个文件的第一列
    x,X              : x为向后删除一个字符,X为向前删除一个字符
    dd               : 删除光标所在的那一整列
    ndd              : 删除光标所在的向下n列
    yy               : 复制光标所在的那一列
    nyy              : 复制光标所在的向下n列
    p                : 将已复制的数据在光标的下一列贴出
    P                : 将已复制的数据在光标的上一列贴出


在指令列命令模式中(一般指令模式下按Ctrl + [ ; ] 进入指令列命令模式,在最下方显示  :代表进入指令列命令模式)
  

    w       :    保存
    q       :    退出
    !       :    强制退出
    wq      :    保存并退出
    w!      :    若文件属性为[只读]上,强制写入该文件
    q!      :    不保存强制退出
    set nu  :    显示行号
    set nonu:    取消行号
    w[filename]  :    将编辑的数据储存成另一个文件,类似于另存为
    r[filename]  :    在编辑的数据中,读入另一个文件的数据
    n1,n2 w[filename]  :将n1到n2的内容储存成filename这个文件

区块选择:在一般指令模式下进行。

在windowns上的文本编辑,只能进行”行“的复制,不能进行列的复制,但是vim可以进行列的复制。

1、把光标移动到目标列,按Ctrl+v这时界面窗口左下方会出现“可视 块”代表可以进行块操作了。
2、移动光标选择需要复制的块。
3、按y复制块,然后把光标移动到需要粘贴的位置,按p进行粘贴。也可以按d将选中的块删除。

例如:

将下面文本中的host1~host9这五列粘贴到文本的net的后面

1、将光标移动到第一行的h处,按Ctrl+v进入可视块

2、移动光标选择需要复制的块(只能用键盘移动)

3、按y复制,移动光标到粘贴位置,按p粘贴

猜你喜欢

转载自blog.csdn.net/Gakki_wpt/article/details/81094307