Esc:命令行模式
i:插入命令
a:附加命令
o:打开命令
c:修改命令
r:取代命令
s:替换命令
以上进入文本输入模式
: 进入末行模式
末行模式:
w:保存
q:退出,没保存则无法退出
wq:保存并且退出
x:保存退出
q!:强制退出
输入模式时:
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首
命令模式时:(移动光标)
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到中间行
H:移动光标到屏幕最高的行
L: 光标移动到屏幕最后一行行首
G: 光标移动到文件末尾,或者移动到指定行,行号 -G
gg: 光标移动文件开头
w: 跳至单词的结尾(含标点)
W:跳至下一个单词
e:跳至单词的结尾(含标点)
E:跳至单词的结尾
b: 向后跳至单词首字母(含标点)
B: 向后跳至单词首字母
gd:跳至当前光标所在函数或者变量的定义
fx:向前移动光标至当行下一个出现字符x的位置
;:重复上一次的f命令
Fx:向前移动光标至当行下一个出现字符x的位置
^:行的第一个字符
$:行末
{: 按段移动,上移
}: 按段移动,下移
),(:移动光标到下一个,上一个句子
Ctr-b: 向上翻一屏
Ctr-f: 向下翻一屏
Ctr-u: 向上翻半屏
Ctr-d: 向下翻半屏
书签:ma:为当前光标所在位置制作一个名字为a的书签
'a:跳至书签a
命令模式时:(删除命令)
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行
n dd 删除指定的行数
D: 删除光标后本行所有内容,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
dw: 删除光标开始位置的字,包含光标所在字符
命令模式时:(复制粘贴)
yy: 复制当前行
yw:复制一个单词
y$:复制到行末
n yy 复制 n 行
p: 将剪切板中的文本插入当行处于当前光标后
P: 将剪切板中的文本插入当行处于当前光标前
命令模式时:(撤销命令)
u: 一步一步撤销
Ctr-r: 反撤销,重做
命令模式时:(重复命令)
. :重复上一次操作的命令
命令模式时:(文本行移动)
>>: 文本行右移(往前缩进)
<<: 文本行左移(往后缩进)
命令模式时:(可视模式)
v: 按字符移动,选中文本 开启可视模式
V: 按行移动开始可视模式
ctrl v:开启矩形区块可视模式
命令模式时:(替换操作)
r: 替换当前字符
R: 替换当前行光标后的字符
命令模式时:(查找命令)
/: 查找
n: 下一个
N:上一个
命令模式时:(替换命令)
末行模式下,将当前文件中的所有abc替换成123
:%s/abc/123/g
末行模式下,将第一行至第10行之间的abc替换成123
:1, 10s/abc/123/g
vim里执行 shell 下命令:
末行模式里输入!,后面跟命令