目录
一.vi/vim编辑器概念介绍
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
推荐使用 Vi 文本编辑器的原因有很多,比如说:
-
几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
-
Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口。
vi与vim之间的区别 :vim是vi的升级版
基本格式:
命令 [选项] 文件
vim 文件名不存在 是新建; vim 文件名存在 就是修改
二.vim的三种模式与其相关模式(基础命令标红)
输入模式(Insert) | 末行模式(extended command ) | 命令模式(Normal) |
会有 插入: 提示符 | 最后一行会有 冒号 | 最后一行什么也没有 |
命令模式下 按 i o 会切换到 输入模式 | 命令模式下 按英文冒号 会切换到 末行模式 | 移动光标 基本操作 |
用于修改文本 | 保存,退出等搜索替代 | 可以实现移动光标,剪切/粘贴文本 |
![]() | ![]() | ![]() |
三种模式:输入模式 和 末行模式 之间无法相互转换, 必须退回 命令模式。
1.命令模式
此模式下,使用方向键(上、下、左、右键)或 k、j、h、l 移动光标的位置
对文件内容进行复制、粘贴、替换、删除等操作。
1.1 退出vim
ZZ #保存退出
ZQ #不保存退出
1.2 光标跳转
h #左 l #右 j #下 k #上
1.3 单词间跳转
w #下一个单词的词首
e #当前或下一单词的词尾
b #当前或前一个单词的词首
1.4 当前页跳转
H #页首
M #页中间行
L #页底
zt #将光标所在当前行移到屏幕顶端
zz #将光标所在当前行移到屏幕中间
zb #将光标所在当前行移到屏幕底端
1.5 行首行尾跳转
^ #跳转至行首的第一个非空白字符
0 #跳转至行首
$ #跳转至行尾
1.6 行间移动
G #最后一行
1G #第一行
gg #第一行
10G #第十行
1.7 复制命令
y #复制命令
Y #复制整行
yy #复制一行
10 yy #复制十行
1.8 字符转换大小写
~ #转换大小写
1.9 交换字符位置
xp #交换光标所在处的字符及其后面字符的位置
1.10 删除命令
d #删除命令,可结合光标跳转字符,实现范围删除
d$ #删除到行尾
d^ #删除到非空行首
d0 #删除到行首
dw #下一个单词的词首
dd #剪切光标所在的行
x #剪切光标处的字符
J(大写) #删除当前行后的换行符
1.11 粘贴命令
p #粘贴至下一行
2.输入模式
输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
2.1 切入输入模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
3.末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
3.1 保存与退出
w #保存
q #退出
wq #保存并退出
! #强制
wq! #强制保存退出
3.2 查找并替换
格式:
范围 s/要查找的内容/替换的内容/修饰符
- 范围:
. | 当前行 |
1,10 | 1-10 行 |
$ | 最后一行 |
% | 全文 |
$-1 | 倒数第二行 |
- s:search查找
- 要查找的内容:可使用基本正则表达式模式
^ | 开头 |
$ | 结尾 |
^$ | 空行 |
- 替换的内容:需明确
- 修饰符:
g | 整行修改 |
i | 忽略大小写 |
c | 询问是否要修改 |
例子如下:
% s/^/#/
#全文开头加#号
% s/^#/ /
#去全文开头#号