前言

许多人使用linux时都会遇到编辑文本的情况,不管是做技术支持还是维护都会需要相应的人员去操作配置文件或查找、复制数据。vi的共功能很强大,可以代替touch来创建文本,代替cat、more等查阅文本,所以掌握了vi就相当于掌握了文本的增删改查,就不需要再去学习更多的命令,在此也是记录方便以后工作当中遇到的问题能够快速的解决。

vi/vim都是所有linux系统中提供的文本编辑器,它提供了一个窗口,通过它来可以编辑文件内容;vim在此基础下增加了许多功能:例如颜色标记等。

vi可以分为三种模式,分别是:

命令模式(command mode):刚进入时的默认模式,此时不能直接添加文字,不能用退格删除文字,需要用方向键控制屏幕光标的移动,可以做到字符的复制、删除、粘贴。

插入模式(insert mode):在插入模式下可以对文件内容进行编辑,在插入模式下底部有个insert标记,在命令模式下可以输入以下的字符进入插入模式

  • i:插入,从目前光标所在之处插入所输入的字符
  • a:增加,从目前光标所在的下一个字符处开始插入字符
  • o:插入新的一行,从行首开始输入字符

底座模式(last line mode):在插入模式下按esc进入命令模式,再输入冒号“:”进入底线模式,在底线模式下,可以完成对文件的保存、内容替换、显示格式的设置等工作

三种模式的切换

命令模式功能-光标移动

操作指南

按shift+g:移动到文件的最后一行行首
按gg:移动到文件的开头
按0或^:移动到所在行的行首
按$:移动到所在行的行尾
使用键盘上的方向键或kjhi来进行光标上下左右移动
按ctrl+f或pg dn:往下翻一页
按ctrl+b或pg up:网上翻一页

命令模式功能-删除、复制、粘贴

操作指南

x/X:x是往后删除,相当于delete,X是往前删,相当于backspace。3x表示删除光标所在位置开始的3个字符,包括光标所在位置。如果输入命令错误,可以按Esc键取消
dw:删除光标所在处直到词尾的内容
dd:删除光标所在行,3dd表示删除从光标所在行开始的3行,包括光标所在行
yw:复制光标所在处到词尾的内容
yy:复制光标所在行,3yy表示复制3行
p:粘贴

命令模式功能-替换、撤销

操作指南

r:替换光标所在处的字符,下方会有replace的标识
shift + r:连续替换字符直到按ESC为止
u:假如误操作一个命令,可以马上按u进行撤销,可以连续按u撤销多个之前做出的操作(等于Windows下的ctrl + z)。
反撤销:Ctrl + r

插入模式功能-输入内容

操作指南

可以插入字符,上下左右键也可以导航,delete和backspace键可以删除字符。

底线模式功能-查找、定位

操作指南

在命令模式下输入冒号进入底线模式
:set nu  在每一行的行首显示行号
:set nonu  关闭显示行号
:n  n是你要输入的数字,再按回车,将跳转到数字指定  的行
可以输入n,向下继续查找
shift+n是往上查找
:set ic:设置忽略大小写
:set noic:设置不忽略大小写
:/关键字  先按/,再输入你要查找的字符

底线模式功能-字符替换

操作指南

在底线模式下输入"1,$s/oldstring/newstring/g"会将全文的oldstring字符串替换成newstring字符串
1,$表示从第一行到最后一行
s表示替换
g表示每行全部替换

或者简写成:%s/oldstring/newstring/g
例如:1,20s/oldstring/newstring/g  将1至20行间的oldstring替换成newstring字符串

底线模式功能-保存、退出

操作指南

:行号 w 文件名  如果你想摘取文件的某一段,存为另一个文件,可以使用这个指令,例如30,50 w nice
:w 新文件名  将文件另存为新文件
:wq  保存并退出
:q!  强制退出vi并不保存当前的修改内容

最后,光是看看可以不行,需要大量的操作来加深记忆。不然肯定是记不住大量的代码和命令

此作者没有提供个人介绍。
最后更新于 2025-05-26