什么是vim
vim 是源于 linux 的一款文本编辑器,在 vi 基础上开发,具有强大的文本编辑能力和跨平台
Vimtutor是 Vim 内置应用 快捷键练习模块

Vim 的三种模式
命令行模式(Command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode。
插入模式(Insert mode)
只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式。
底行模式 (Lastline mode)
将文件保存或退出 vim,也可以设置编辑环境,如寻找字符串、列出行号…… 等。
zz 保存退出
从命令行模式切换为插入模式
| 功能 |
说明 |
| 从当前光标位置的下一个字符 且 进入插入模式 |
「 a 」 |
| 从当前光标位置的下一行 且 进入插入模式 |
[ o 」 |
| 从当前光标位置 且 进入插入模式 |
「 i 」 |
| 从当前光标位置的行尾 且 进入插入模式 |
大写字母「A」 |
| 从当前光标位置的上一行 且 进入插入模式 |
大写字母[O] |
|
|
| 删除光标所在位置,到行尾的内容 且进入插入模式 |
大写字母[C] |
从插入模式切换为命令行模式
按「ESC」键
移动命令
| 功能 |
说明 |
| 光标移动到本行开始 |
按下数字0 |
| 光标移动到本行末尾 |
按下$ |
| 光标移动到屏幕第一行的开始 |
按下H |
| 光标移动到文件最后一行的开始 |
按下大写 G |
| 光标移动到文件的第n行的开始 |
nG |
| 光标移动到文件的第一行的开始 |
按下 gg |
| 移动到屏幕的中间 |
按下 M |
| 移动到下一个单词 |
按下 W |
| 移动到上一个单词 |
按下 b |
| 功能 |
说明 |
| 向左 |
按下h |
| 向下 |
按下j |
| 向上 |
按下k |
| 向右 |
按下l |
搜索与替换命令
| 字符串查找 功能 |
说明 |
| 从光标位置向下查找 word字符串 |
/word |
| 从光标位置向上查找 word字符串 |
?word |
| 重复前一个搜索的动作 |
按下n |
| 反向 重复前一个搜索的动作 |
按下N |
底行模式
| 功能 |
说明 |
| 文件存盘并退出 vim |
:wq |
| 文件不存盘并退出 vim |
:q |
| 文件不存盘强制退出 vim |
:q! |
| filename 文件以 filename 为文件名保存 |
:w |
|
|
|
|
删除 复制 粘贴
| 功能 |
说明 |
|
|
| 删除光标后面的一个单词 |
「d」「w」 |
| 删除光标后面的一个单词,无视单词前面的空格 |
「d」「e」 |
| 从当前光标处删除到行末 (把光标停留在需要删除的句子前面) |
「d」「$」 |
| 复制光标所在行 |
[y] [y] |
| 删除光标当前行 |
「d」「d」 |
| 连续删除两行 |
「2」「d」「d」 |
将刚删除或者复制的内容置入其他行 (类似windows的「剪切」操作) 打印粘贴的内容 |
「p」 |
|
|
| 删除光标当前位置到行尾的内容 |
输入D |
| 删除光标当前字符,向后删除 |
输入x |
| 删除光标当前字符,向前删除 |
输入X |
|
|
|
|
撤销更改
| 功能 |
说明 |
| 撤销上一步的更改操作 |
按小写字母「u」 |
| 撤销整行的更改操作 |
按大写字母「U」 |
| 撤销上一步「撤销操作」 |
「Ctrl+R」 |
跳转
| 功能 |
说明 |
| 顶部跳转命令 |
先按「Control」+「g」键 在终端底部调出一栏,然后输入「g」「g」 |
| 底部跳转命令 |
先按「Control」+「g」键,在终端底部调出一栏,然后输入大写字母「g」 |
| 特定行跳转命令 |
直接输入行号,然后输入大写字母「g」 |
替换字符串
😒 命令替换字符串(当前行)
| 功能 |
说明 |
| 😒/p1/p2/ |
替换当前行第一个p1为p2 |
| 😒/p1/p2/g |
替换当前行所有的p1为p2 |
| 将光标放到需要改的字符前 |
先按「r」键,再输入想更改的字符 |
:n1,n2s 命令替换字符串(指定行)
| 功能 |
说明 |
| 在n1和n2行 之间寻寻找字符串word1, 并将其替换为字符串word2 |
: n1 n2s/word1/word2/g |
| 用字符串p2替换当前行到末尾所有出现的字符p1 |
:.,$s/p1/p2/g |
| 用字符串p2替换所有出现的字符p1 |
:1,$s/p1/p2/g |
:%s 命令替换字符串(全文)
| 功能 |
说明 |
| 替换每一行的第一个p1为p2 |
:%s/p1/p2/(等同于:g/p1/s//p2/) |
| 替换每一行中所有p1为p2 |
:%s/p1/p2/g(等同于:g/p1/s//p2/g) |
|
|
-- g选项
g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换。
g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
批量快捷操作-三种可视块模式
| 功能 |
快捷键 |
| 选择单个字符 (可视模式) |
[v] |
| 选择一行 (可视行模式) |
大写 [V] |
| 选择整块 (可视块模式) |
Ctrl + v |
步骤:
1.输入ctr1+v进入可视块模式
2.用上下左右命令,选择你选操作的块
3.选中块后,输入d 删除块内容
快捷插入多行:
1. 输入ctr1+v进入可视块模式
2. 用上下左右命令,选中块后,输入大写的I,进行写代码
3. 按下esc两次,会自动生成多行代码