一、什么是vi

  • 是一种文本编辑器,是Visual interface的简称;
  • 而vim则是vi的强化版vi plus,专业全称Vi improved。

二、vi的优势

  1. 所有的类Unix系统(Unix like系统)都会自带vi文本编辑器,而其他的文本编辑器则不一定存在
  2. 许多软件的编辑接口都会主动呼叫vi
  3. vim具有程序编辑的能力,可以通过颜色来辨别语法,可以方便我们设计程序
  4. 编辑速度非常快

三、vi的编辑模式

  • 命令模式
  • 输入模式
  • 末行模式
  • 可视化模式
  • 查询模式

四、进入各种模式的方法

  • 命令模式:其他模式下按esc,进入后左下角什么都不显示,当第一次进入vi模式时,会显示文件名,行数,字节数
  • 输入模式:命令模式下按a、i、o、A、I、O(左下角显示–INSERT–)
  • 末行模式:命令模式下按 : 即shift+;
  • 可视化模式:命令模式下按v
  • 查询模式:命令模式下按/(从上往下查找)或?(从下往上查找)按n切换下一个,N切换上一个

五、如何退出vi编辑模式
在末行模式下:

  • q 直接退出
  • wq 保存并退出 == x
  • q!不保存退出,即强行退出
  • w 保存
  • w!强行保存

在编辑模式下:ZZ保存并退出

六、vi命令模式的操作

  1. 跳到行首,在命令模式下按gg
    跳到某x行行首,xgg或xG
    gg=G
  2. 复制
    在命令模式下按yy复制当前行,在命令模式下按yy复制当前行,
    xyy复制从当前行算起的x行xyy复制从当前行算起的x行
  3. 粘贴
    p在光标后面或下面粘贴所复制内容p在光标后面或下面粘贴所复制内容
    P在光标的前面或上面粘贴所复制内容
    若复制的为整行,则在上面或下面粘贴复制的内容,若不为整行,则在后面或前面粘贴复制的内容
  4. 删除
    在命令模式下,按dd删除光标所在行在命令模式下,按dd删除光标所在行
    dw删除光标所在字节内之后的内容(包括光标位置)
    de剪切删除光标所在字节内之后的内容(包括光标位置),可配合p命令使用
  5. 撤销
  • 命令模式下按u,按几次u就撤销几次操作
  • xu,撤销此前的x次操作
  • CTRL+r 撤销最近一次的撤销操作,即恢复操作,相当于word中的CTRL+y
  1. 跳至行首使用 ^即 shift+6
  2. 跳至行尾使用 $即shift+4

七、vi末行模式的命令

  1. 打开新文件进行编辑 e [文件]
    在末行模式下输入e ./dkxwj即可打开另一个文件进行编辑
  2. 在当前文件中直接读取另一个文件 r [文件]
    在末行模式下输入 r ./dqwj即可在当前文件中导入另一个文件,导入位置为光标所在行的下一行
  3. 替换, r /旧字符/新字符 g
    g表示多个替换
  • 将当前行中查找到的第一个root替换为root_new

文本编辑器 python 文本编辑器怎么用_命令模式


s /root/root_new

文本编辑器 python 文本编辑器怎么用_命令模式_02

  • 将当前行所有root替换为root_new

文本编辑器 python 文本编辑器怎么用_文本编辑器_03


s /root/root_new /g

文本编辑器 python 文本编辑器怎么用_vim_04

  • 将第2行到第4行中所有的sbin变为bin

文本编辑器 python 文本编辑器怎么用_vim_05


2,4 s /sbin/bin/g

文本编辑器 python 文本编辑器怎么用_vim_06

  • 将所有的sbin替换为bin

文本编辑器 python 文本编辑器怎么用_文本编辑器_07


% s /sbin/bin/g

文本编辑器 python 文本编辑器怎么用_命令模式_08

  • 在每一行的行首插入字符串new

文本编辑器 python 文本编辑器怎么用_命令模式_09


% s/^/new/g

文本编辑器 python 文本编辑器怎么用_vim_10


若要在行尾添加,只需将^改为$即可

  • 显示行号set nu
  • 取消显示行号 set nonu

总结

  • vi的功能十分强大,而且很繁琐,但是都很好用,这个需要多多练习,而且以上只是一小部分,下面附上一张比较完整的vi功能图,以供各位查阅,学习。

    文本编辑器 python 文本编辑器怎么用_命令模式_11

  • vim与vi使用方法几乎完全相同,但是vim显示优于vi,另外,一般来说,vim在Linux虚拟机中并不是自带的,所以需要我们自行安装