工作模式
i # insert 模式,进行文件编辑
v # visual 模式,移动光标可以选中文本。可用来复制块,粘贴,删除等操作
R # replace 模式,可以直接对字符进行替换
: # 命令行模式
操作命令
打开文件
vim filename # 打开或新建一个文件,把光标置于首部
vim + filename # 打开或新建一个文件,把光标置于末尾
vim +n filename # 打开或新建一个文件,把光标置于 n 行
vim -R filename # 只读模式打开一个文件
光标移动
gg # 移动到文件开头
G # 跳转到文件末尾
nG # 跳转到 n 行
'' # 两次英文引号,返回到跳转前的位置
$ # 光标移动到当前行的行尾
0 # 光标移动到当前行的行首
### 词组移动
w # 光标移动到下一个单词的开头
e # 光标移动到下一个单词的末尾
b # 光标移动到前一个单词的开头
### 上下左右
k # 上
j # 下
h # 左
l # 右
文本插入
i # 在当前光标的前面插入字符
a # 在当前光标的后面追加字符
I # 在行首添加字符
A # 在行尾添加字符
文本删除
x # 删除光标所在的字符
X # 删除光标左边的字符
d$ # 删除从光标到行尾的内容
d0 # 删除从光标到行首的内容
dd # 删除光标当前行
ndd # 删除从光标所在行开始的 n 行代码
dgg # 删除光标所在行至文本开头的所有内容
dG # 删除光标所在行至文本结尾的所有内容
文本复制与粘贴
y # 复制
p # 在光标后或下一行粘贴
y$ # 复制光标到行尾的所有内容
y0 # 复制光标到行首的所有内容
yy # 复制一整行
nyy # 复制从光标所有行开始的 n 行
### 复制文本块
# 1. 按 v, 进入 visual 模式
# 2. 移动光标选择文本
# 3. 复制与粘贴的操作
### 复制全部
ggvG # 全选,进入 v 模式,G移动到文本结尾
文本查找与替换
单个字符的替换
~ # 修改光标下字符的大小写
rx # 将光标下的字符替换为 x
查找命令
# Enter 确认查找,n 浏览下一个查找结果,N 浏览上一个查找结果
/string # 向后查找
?string # 向前查找
:set hls # 设置查询的结果高亮
:noh # 关闭高亮展示
:set nu # 设置行号展示
替换命令
:s/old/new # 将当前行的第一个 old 替换成 new
:s/old/new/g # 将当前行的所有 old 替换成 new
:ns/old/new/ # 将第 n 行的第一个 old 替换成 new
:ns/old/new/g # 将第 n 行的所有 old 替换成 new
:m,ns/old/new # 将指定的 m, n 行内的第一个 old 替换成 new
:m,ns/old/new/g # 将指定的 m, n 行内的所有 old 替换成 new
:%s/old/new # 将文本中,所有行的第一个 old 替换成 new
:%s/old/new/g # 将文本中全部的 old 替换成 new
:%s/old/new/gc # 依次将 old 替换成 new,每次替换前,需要确认
:%s/^hello/halle/g # 将文本中所有以 hello 开头的字符串替换成 halle
撤销、重置、保存
u # 撤销上一步的操作,类似 windows 的 ctrl+z
Ctrl+r # 将原来撤销的恢复,类似 windows 的 ctrl+r
:q # 如果文件没有更改,直接退出
:q! # 放弃修改,直接退出
:wq # 保存修改并退出
:e! # 放弃修改,重新回到文件打开时的状态