Linux基础学习笔记第九章:vi/vim编辑器
大家好,我是小智!
基本概念
vim文本编辑器,是由vi编辑器发展演变过来的文本编辑器,因其具有使用简单、功能强大、是 Linux 众多发行版的默认文本编辑器。很多人习惯将 vim 称为 vi,其实 vim 是 vi 的增强版(在 vi 的基础上增加了正则表达式的查找、多窗口的编辑等功能),使用 vim 进行程序开发会更加方便。
注意:Linux系统中是默认安装vi编辑器的,但是需要手动安装vim编辑器,指令如下所示:
sudo apt install vim


模式说明
vim有三种工作模式,分别是命令模式、插入模式和编辑模式,具体三种方式的关系图如下:

命令模式
当使用 vi/vim 打开文件时,则默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、l 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
输入模式
在输入模式下,Vim 可以对文本执行写操作,类似于在 Windows 系统的文档中输入内容。使Vim 切换到输入模式的方法:在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
| 快捷键 | 功能描述 |
|---|---|
| i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
| I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
| o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
| O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
| a | 在当前光标所在位置之后插入随后输入的文本 |
| A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令 |
编辑模式
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法:在命令模式状态下按shift+:键,此时 Vim 窗口的左下方出现一个“:”符号,就可以输入相关指令进行操作了。指令执行后 Vim 会自动返回命令模式。
如果想直接返回命令模式,按 Esc 即可。注意:如果无法确定此时为何种模式,只需按一次 Esc 键,即可返回命令模式。
使用流程
打开文件
利用vi/vim进行文本编辑,涉及到文件的各种操作,前提都是需要提前“打开文件”操作:
vi test.c
刚打开文件时默认处于命令模式,此时文件的下方会显示文件的一些信息:文件的总行数和字符数,以及当前光标所在的位置等。
编辑文件
Vim 提供了大量的编辑快捷键,所有操作大部分在命令模式下进行,主要可分为以下几类:
查找内容
如果在文件中并没有找到所要查找的字符串,则在文件底部会出现 Pattern not found提示。
在查找过程中需要注意的是,要查找的字符串是严格区分大小写的,如查找 "shenchao" 和 "ShenChao" 会得到不同的结果。如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。
如果在字符串中出现特殊符号,则需要加上转义字符反斜杠。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 10$,则需要在命令模式中输入 /10\$。

替换文本



删除文本
需要注意的是被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。

复制粘贴

保存退出
注意:vi/vim 的保存和退出是在编辑模式中进行的,"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly),但如果你是文件的所有者或者 root 用户,就可以强制执行。

其他常用
某些情况下,可能需要把两行进行连接。比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按下 "J" 键。
如果不小心误删除了文件内容,则可以通过 "u" 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 "u" 键。
练习
- 要求在Linux系统下使用vi/vim编辑器完成程序的编辑,并完成程序的编译工作!




浙公网安备 33010602011771号