1. vim三种模式及模式切换
(1)编辑模式
功能:编辑文本。
特征:下方显示“插入”或“inset”。
(2)命令模式
功能:粘贴、复制、删除等命令
特征:1. 下方无任何显示,可移动光标。
2. 输入命令后,会显示输入的命令
(3)末行模式
功能:替换、设置行号、保存、退出等。
特征:在 “ : ” 后,输入指令。
三种模式的切换
2. 命令模式下的操作
(1)切换到编辑模式
按键 | 功能 |
---|---|
i | 当前位置处插入字符 |
I(大写i) | 当前行的行首插入字符 |
o(字母) | 光标下一行插入字符(新行) |
O(字母) | 光标上一行插入字符(新行) |
a | 光标右边插入字符 |
A | 当前行末尾插入字符 |
s | 删除光标右边字符,从当前位置插入 |
S | 删除光标所在行,从行首插入 |
(2)光标移动
按键 | 功能 |
---|---|
Ctrl + f | 向前滚动一个屏幕 |
Ctrl + d | 向后滚动一个屏幕 |
gg | 定位到文件第一行的行首 |
G | 定位到文件最后一行的行首 |
mgg或mG | 定位到m行 |
0(数字) | 定位到当前行的行首 |
$ | 定位到当前行的行尾 |
l(小写L) | 向右移动光标 |
h | 向左移动光标 |
k | 向上移动光标 |
j | 向下移动光标 |
^ | 光标定位到行首第一个字符(不包含空格) |
(3)复制粘贴
按键 | 功能 |
---|---|
[n]yy | 复制从当前行开始的n行 |
p | 粘贴 |
(4)删除
按键 | 功能 |
---|---|
[n]x | 删除光标后的n个字符 |
[n]X | 删除光标前的n个字符 |
D | 删除当前位置至当前行尾的字符 |
[n]dd | 删除从当前行开始的n行 |
dG | 删除当前行至文件末尾的所有字符 |
dw | 删除当前位置至当前行尾的字符 |
d0(数字0) | 删除当前行首至当前位置的字符(不包含光标所在字符) |
dgg | 删除文件开始至当前行的所有字符 |
(5)重复操作和撤销
按键 | 功能 |
---|---|
.(点) | 执行上次命令 |
u | 撤销上次命令 |
Ctrl + r | 反撤销 |
10+. | 执行10次上次命令 |
(6)保存退出
按键 | 功能 |
---|---|
Shift + zz | 保存退出 |
(7)查找
按键 | 功能 |
---|---|
/字符串 + 回车 | 从当前位置向下查找(n、N切换找到的内容) |
?字符串 + 回车 | 从当前位置向上查找(n、N切换找到的内容) |
(8)替换
按键 | 功能 |
---|---|
r | 替换当前单个字符 |
R | 替换当前行光标后的字符(ESC退出替换模式) |
(9)可视模式
按键 | 功能 |
---|---|
v | 按字符选中文本,可配合h、j、k、l使用。使用d删除,使用y复制 |
Shift + v | 按行选中文本,可配合h、j、k、l使用。使用d删除,使用y复制 |
Ctrl + v | 按列选中文本,可配合h、j、k、l使用。使用d删除,使用y复制 |
3. 末行模式下的操作
(1)保存退出
按键 | 功能 |
---|---|
:wq | 保存退出 |
:x | 保存退出 |
:w filename | 保存到指定文件,filename可为多级目录文件 |
:q | 退出,若文件修改但未保存,则提示无法退出 |
:q! | 不保存,退出 |
(2)替换
按键 | 功能 |
---|---|
:s/abc/123/ | 当前行的第一个“abc”替换为“123” |
:s/abc/123/g | 当前行的所有“abc”替换为“123” |
:1,10s/abc/123/g | 将第一行至第十行的所有“abc”替换为“123” |
:%s/abc/123/g | 将当前文件的所有“abc”替换为“123” |
:%s/abc/123/gc | 将当前文件的所有“abc”替换为“123”,但需要用户依次确认 |
:1,$s/abc/123/g | 当前文件的所有“abc”替换为“123” |
(3)分屏
按键 | 功能 |
---|---|
:sp | 当前文件水平分屏 |
:vsp | 当前文件垂直分屏 |
:sp filename | 当前文件与另一个文件水平分屏 |
:vsp filename | 当前文件和另一个文件垂直分屏 |
Ctrl + ww | 光标在多个文件间切换 |
:wall、:wqall、:qall | 保存、保存退出、退出所有分屏文件 |
vim -O filename1 filename2 | 垂直分屏 |
vim -o filename1 filename2 | 水平分屏 |
4. 补充
(1)设置永久显示行号
编辑vim的配置文件
vim /etc/vim/vimrc
加上set nu
(2)设置缩进为4个字符
编辑vim的配置文件
vim /etc/vim/vimrc
加上set ts=4