vi编辑器的使用

时间:2021-09-22 22:12:13

vi编辑器是Linux系统下标准的编辑器,一般linux都没有桌面环境,平常修改一些配置文件,编写脚本对于vi编辑器来说都很方便,所以我们有必要学会并熟练使用它。
vi编辑器可以分为三种状态,分别是命令模式、插入模式和底行模式

  • 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到 底行模式。
  • 插入模式:只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。
  • 底行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

下面列举一些常用命令和技巧

基本使用

我们如何进入vi编辑器呢?
输入vi fileName命令进入vi编辑器,这时处于命令行模式。
在命令模式下按下i字母就会进入插入模式,这时就可以对对文件进行编辑了。
那我们如何退出vi编辑器呢?
在命令行模式下,按一下 :冒号键进入底行模式

  • :w保存但不退出。
  • :w fileName文件另存为filename。
  • :wq保存并退出。
  • :q退出但不保存。
    在末尾加入表示强制执行,例如:q!表示强制退出但不保存。

命令行模式功能键

进入插入模式的几种方法。

  • i进入插入模式后,光标当前位置开始输入文件;
  • 按大写I进入插入模式后,光标所在行开始位置开始输入文件
  • a进入插入模式后,光标所在位置的下一个位置开始输入文字;
  • A进入插入模式后,光标所在行末尾开始输入文字;
  • o进入插入模式后,在当前行下一行插入新的一行,从行首开始输入文字。
  • O进入插入模式后,在当前行上一行是插入新的一行,从行首开始输入文字。

移动光标
vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母hjkl,分别控制光标左、下、上、右移一格。
其他移动光标的功能键

  • ctrl + b屏幕往“后”移动一页。
  • ctrl + f屏幕往“前”移动一页。
  • ctrl + u屏幕往“后”移动半页
  • ctrl + d屏幕往“前”移动半页。
  • home,^,0移到行首。
  • end,\$移到行尾
  • gg移到文件开头。
  • G移到文件最后。
  • w光标跳到下个字的开头
  • e光标跳到下个字的字尾
  • b光标回到上个字的开头
  • #l光标移到该行的第#个位置,如:5l,56l。

删除文字

  • x每按一次,删除光标所在位置的“后面”一个字符。
  • #x:例如,「6x」表示删除光标所在位置的“后面”6个字符。
  • X大写的X,每按一次,删除光标所在位置的“前面”一个字符。
  • #X例如,「20X」表示删除光标所在位置的“前面”20个字符。
  • dd删除光标所在行。
  • #dd从光标所在行开始删除#行

复制

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

替换

  • r替换光标所在处的字符。
  • R替换光标所到之处的字符,直到按下「ESC」键为止。

撤销

  • u如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次“u”可以执行多次回复。

更改

  • cw更改光标所在处的字到字尾处
  • c#w例如,c3w表示更改3个字

跳至指定的行

  • ctrl + g列出光标所在行的行号。
  • #G例如,10G,表示移动光标至文章的第15行行首。

底行模式下命令简介

  在使用底行模式之前,请记住先按「ESC」键确定您已经处于命令行模式下后,再按:冒号即可进入底行模式。

列出行号

  • set nu输入set nu后,会在文件中的每一行前面列出行号。

跳到文件中的某一行

  • #号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符 .

  • /关键字先按/键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止。
  • ?关键字先按?键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n会往前寻找到您要的关键字为止。

保存文件

  • w在冒号输入字母w就可以将文件保存起来。

离开vi

  • q按「q」就是退出,如果无法离开vi,可以在q跟一个!强制离开vi。
  • qw一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件。