vim编辑器入门
本随笔是学习vim编辑器学习笔记,原课程详见 https://www.shiyanlou.com/courses/2
vim编辑器的六种基本模式
1. 普通模式:启动后的默认模式,按 a 或者 i 等可以进入插入模式;
2. 插入模式:可以输入文本,只是写入缓冲区并不保存,按 Esc 返回普通模式;
3. 命令模式:可以输入会被解释并执行的文本;
除了上面三种模式,还有可视模式、选择模式、Ex模式等三种模式。
vim [文件名]
打开vim编辑器,并进入普通模式
移动鼠标
在普通模式下执行下面命令可以移动鼠标
按键 | 说明 |
h | 左 |
l(小写) | 右 |
j | 下 |
k | 上 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
普通模式下执行下面命令可以进入插入模式
命令 | 说明 |
i(小写) | 在当前游标处进行编辑 |
I(大写) | 在行首插入编辑 |
A | 在行末插入编辑 |
a | 在游标后插入编辑 |
o(小写) | 在当前行后插入一行新行 |
O(大写) | 在当前行前插入一行新行 |
cw | 替换游标所在位置及以后到一个单词结尾的字符 |
保存文档
在命令模式下执行下面命令可以保存文档
:w
:w <文件名> ---- 可以另存到其他位置,另存为
退出vim编辑器
命令行模式下执行下面命令退出
命令 | 说明 |
:q! | 强制退出,不保存( ! 表示强制) |
:q | 退出 |
:wq! | 强制退出,并保存 |
:w [文件路径] | 另存为 |
:saveas [文件路径] | 另存为 |
:x | 保存并退出 |
:wq | 退出并保存 |
普通模式下 执行 shift + zz 退出
删除文本信息
普通模式下按下面键删除vim文本信息
按键 | 说明 |
x(小写) | 删除游标所在的字符 |
X(大写) | 删除游标所在前一个字符 |
Delete | 同x(小写) |
dd | 删除整行 |
dw | 删除一个单词(不适用中文) |
d$ 或 D | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除至文档结尾处 |
d1G | 删除至文档首部 |
可以在命令之前加上数字,表示一次删除多行
vim重复命令
1. 重复执行上次命令
普通模式下按键 . (英文句号,小数点)表示重复上一次的命令操作
2. 执行指定次数相同的命令
普通模式下, N<command>
N表示重复后面的次数
游标快速跳转
显示行号,可以在命令模式输入 :set nu 显示行号
行间跳转
普通模式下执行下面命令
按键 | 说明 |
nG( n Shift + g ) | 游标移动到第 n 行 |
gg | 游标移动到第一行 |
G( Shift + g ) | 游标移动到最后一行 |
Ctrl to : 回到上一次游标所在的位置
行内跳转
普通模式下
按键 | 说明 |
w | 到下一个单词的开头 |
e | 到当前单词的结尾 |
b | 到前一个单词的开头 |
ge | 到前一个单词的结尾 |
o 或 ^ | 到行头 |
$ | 到行尾 |
F<字母> | 向前搜索<字母>并跳转到第一个匹配的位置 |
f<字母> | 向后搜索<字母>并跳转到第一个匹配的位置 |
t<字母> | 向后搜索<字母>并跳转到之前的一个字母 |
T<字母> | 向前搜索<字母>并跳转到之后的一个字母 |
复制
普通模式下使用y复制
按键 | 说明 |
yy | 复制游标所在整行 |
y^ 或 y0 | 复制至行首,不含当前字符 |
y$ | 复制至行尾(含) |
yw | 复制单词 |
y2w | 复制两个单词 |
yG | 复制至文本末 |
y1G | 复制至文本开头 |
粘贴
普通模式中使用 p 粘贴
p (小写) : 粘贴至游标后
P(大写) : 粘贴至游标前
剪切及粘贴
删除命令 dd 即为剪切,p 粘贴即可
替换
普通模式下使用下面命令
按键 | 说明 |
r + <待替换字母> | 将游标所在字母替换为指定字母 |
R | 连续替换,直至按下Esc |
cc | 替换整行,即删除游标所在行,并进入插入模式 |
cw | 替换一个单词,即删除游标所在一个单词,并进入插入模式 |
C(大写) | 替换游标以后至行末 |
~ | 反转游标所在字母大小写 |
u{n} | 撤销一次或n次操作 |
U(大写) | 撤销当前行的所有修改 |
ctrl + r | redo,即撤销undo的操作 |
快速缩进
普通模式下执行
>> 整行向右缩进
<< 整行向左回退
命令模式可以用 shiftwidth 值进行设置,可以控制缩进和回退的字符数
:set shiftwidth? 查看设置值
:set shiftwidth=n 重新设置值为n
命令模式下
:ce 内容剧中
:ri 文本靠右
:le 文本靠左
快速查找
普通模式下
/<查找的字符串> 向下查找
?<查找的字符串> 向上查找
进入查询中,n 键继续查找,N 键反向查找
高级查询
寻找游标所在处的单词
\* 向后(下)查找
\# 向前(上)查找
部分符合该单词即可
g\* 向后(下)查找
g\# 向前(上)查找