Linux之Vim编辑器
Vim文本编辑器
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
Vi 编辑器是 Unix 系统最初的编辑器。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。
在 GNU 项目中,程序员在将 Vi 编辑器移植到开源世界的同时,决定对其作一些改进。由于改进后的 Vi 不再是以前 Unix 中的那个原始的 Vi 编辑器了,开发人员也就将它重命名为“Vi improved”,也就是 Vim。
因此可以这样说,Vim 是由 Vi 发展演变过程的文本编辑器,因其具有语法高亮显示、多视窗编辑、代码折叠、支持插件等功能,已成为众多 Linux 发行版本的标配。
centos7 安装vim:
yum -y install vim*;
Vim三种工作模式
使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和末行指令模式,这 3 种工作模式可随意切换,如图所示:
Vim的命令模式:
使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、l 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
Vim的输入模式:
在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。
使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 所示),当编辑文件完成后按 Esc 键即可返回命令模式
Vim 的末行指令模式:
编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。
使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。
Vim基本操作
使用 Vim 进行编辑
同样,Vim 提供了大量的编辑快捷键,主要可分为以下几类。
Vim 插入文本
从命令模式进入输入模式进行编辑,可以按下 I、i、O、o、A、a 等键来完成,使用不同的键,光标所处的位置不同,如表所示。
快捷键 | 功能描述 |
---|---|
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符 |
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | (大写) 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令 |
Vim 查找文本
快捷键 | 功能描述 |
---|---|
/abc | 从光标所在位置向前查找字符串 abc |
/^abc | 查找以 abc 为行首的行 |
/abc$ | 查找以 abc 为行尾的行 |
?abc | 从光标所在为主向后查找字符串 abc |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定 |
注: 按小写的n是查找下一个,大写的N是返回上一个 |
Vim 替换文本
快捷键 功能描述
r 替换光标所在位置的字符
R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束
😒/a1/a2/g 将当前光标所在行中的所有 a1 用 a2 替换; s表示替换操作;g表示全局,没有g时只替换一次
:n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换(末尾行模式,使用set nu展示文本行号)
:1,$s/a1/a2/g 将文件中所有的 a1 都用 a2 替换;%表示整个文件,同1,$; . ,$ 表示从当前到结尾
语法为 :[addr]s/源字符串/目的字符串/[option]
[addr]:代表执行的位置
s :代表执行替换操作
[option] :表示操作类型 ,省略option时仅对每行第一个匹配串进行替换;
g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示
Vim删除文本
快捷键 功能描述
x 删除光标所在位置的字符
dd 删除光标所在行
ndd 删除当前行(包括此行)后 n 行文本,例如:5dd
dG 删除光标所在行一直到文件末尾的所有内容; dgg删除所在行一直到文件开头。 G代表文件末尾,gg代表文件开头
D 删除光标位置到行尾的内容
:a1,a2d 函数从 a1 行到 a2 行的文本内容
注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处
Vim复制和粘贴文本
快捷键 功能描述
p 将剪贴板中的内容粘贴到光标后
P(大写) 将剪贴板中的内容粘贴到光标前
y 复制已选中的文本到剪贴板
yy 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行
yw 将光标位置的单词复制到剪贴板
Vim 保存退出文本
Vim 的保存和退出是在编辑模式中进行的,其常用命令如下表所示。
命令 功能描述
:wq 保存并退出 Vim 编辑器
:wq! 保存并强制退出 Vim 编辑器
:q 不保存就退出 Vim 编辑器
:q! 不保存,且强制退出 Vim 编辑器
:w 保存但是不退出 Vim 编辑器
:w! 强制保存文本
:w filename 另存到 filename 文件
x! 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令
ZZ 直接退出 Vim 编辑器
需要注意的是,"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候,但如果你是文件的所有者或者 root 用户,就可以强制执行。
Vim 可视化模式及其用法
Vim可视化模式
在 Vim 中,如果想选中目标文本,就需要调整 Vim 进入可视化模式,如下所示,通过在 Vim 命令模式下键入不同的键,可以进入不同的可视化模式。
image-20220726145853444
vim 命令模式下编辑文本的很多命令,在可视化模式下仍然可以使用
image-20220726145914050
多文件编辑
不管是vi还是vim都可以同时打开并编辑多个文件,如同在Windows中使用Office同时打开多个文件一样。但是由于vim拥有多行编辑的功能,因此使用它在多个文件之间切换编辑的时候更加方便。
[root@linux30 charPro]# vim vim_file1 vim_file2
同时打开vim_file1和vim_file2后,默认会打开第一个文件,也就是vim_file1,输入一些内容后,我们把光标定位到第二行,并按V键,这时进入多行选中模式,选中第二行和第三行,并进行复制操作(按y键)。这时刚刚选中的两行被复制到了缓冲区中,输入:n并按回车键,会切换至vim_file2,这时按p键,刚刚复制的内容将会粘贴到当前文件vim_file2中。
要想从文件vim_file2的界面回到vim_file1,只需要输入:N并按回车键即可。要想查看当前一共打开了几个文件,可以输入:files查看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)