1. 普通模式、插入模式与命令输入
-
默认为普通模式,使用
i
a
等插入命令会进入插入模式,其文件行最下方会有提示
-
普通模式下输入
:
(冒号)可以进行命令输入,键入的命令内容在最下方显示
-
插入模式与命令输入时切换普通模式,按
ESC
按键,此时文件行最下方提示消失变为空白
2. 普通模式下移动光标
2.1 上下左右移动光标
k(上)
h(左) l(右)
j(下)
- 在命令前加数字n,可重复该命令n次;如
3j
命令为向下移动光标3次,5l
为向右移动光标5次
2.2 单词之间的移动
-
在普通模式下,使用命令
w
可以使光标移动至下一单词的词首 -
在普通模式下,使用命令
b
可以使光标移动至上一单词的词首 -
在普通模式下,使用命令
e
可以使光标移动至下一单词的词尾 -
在普通模式下,使用命令
ge
可以使光标移动至上一单词的词尾
2.3 行内的移动
- 在普通模式下,使用命令
^
(Shift+6)可移动光标至该行非空字符的行首,使用命令0
(数字0),可以使光标移动至行首 - 在普通模式下,使用命令
$
(Shift+4),可以使光标移动至行尾 - 在普通模式下,使用命令
f
加指定字符 x,可移动光标至光标后的第一个指定字符 x 处,如hello world!!
,当光标在h处时,使用命令fo
即会将光标移至hello的o字符处 ,当光标在w处时,使用命令fo
则会将光标移至world的o字符处,同理,使用F
命令则是向光标前查找指定字符并移动光标 - 对于
f
与F
命令,可以使用;
或,
命令重复f
命令的操作,分别是重复正向与反向查找并移动 - 在普通模式下,使用命令
%
(Shift+5)可以使光标移动至该行的括号上,多次使用会在左右括号间移动
2.4 行之间的移动
- 在普通模式下,使用命令
gg
可移动光标至文件首行 - 在普通模式下,使用命令
G
可移动光标至文件末尾行 - 在普通模式下,使用数字与命令
G
组合可移动光标到指定行,如3G
为移动光标至文件的第三行 - 不知道行号,可输入命令
:set number
设置显示行号,输入命令:set nobumber
关闭显示行号
2.5 滚屏查看内容
-
在普通模式下查看文件,当文件内容过多无法显示完全时,需要滚屏查看
-
使用
CTRL+E
组合键命令可向下滚动一行,使用CTRL+Y
组合键命令可向上滚动一行 -
使用
CTRL+U
组合键命令可向下滚动半屏,使用CTRL+D
组合键命令可向上滚动半屏 -
使用
CTRL+F
组合键命令可向下滚动整屏,使用CTRL+B
组合键命令可向上滚动整屏 -
普通模式下,使用
zz
命令将光标所在行调整在屏幕中间,使用zt
命令将光标所在行调整在屏幕最上方,使用zb
命令将光标所在行调整在屏幕最下方
3. 普通模式下插入内容(进入插入模式)
- 普通模式下使用
i
命令在光标所在字符前插入内容 - 普通模式下使用
a
命令在光标所在字符后插入内容 - 普通模式下使用
I
命令在行首插入内容 - 普通模式下使用
A
命令在行尾插入内容 - 普通模式下使用
o
命令在光标所在行下方新建空白行插入内容 - 普通模式下使用
O
命令在光标所在行上方新建空白行插入内容 - 普通模式下使用
cl
命令修改光标所在字符,该命令会将光标所在字符删除并进入插入模式,通常配合数字进行多个字符修改,如c3l
为修改光标往右共三个字符 - 普通模式下使用
cc
或S
命令修改一整行,该命令会将光标所在行内容删除并进入插入模式,并且会保持之前的代码缩进,也可用于空白行插入时智能缩进使用
4. 普通模式下删除内容
4.1 删除单个字符
- 普通模式下移动光标至需要删除的字符上,使用
x
可删除光标所在处字符
4.2 删除整行字符
- 普通模式下移动光标至需要删除的字符行,使用
dd
命令可删除光标所在行所有内容(相当于剪切Ctrl+X),可配合数字实现多行剪切,如命令3dd
表示剪切3行 ,使用p
命令即可粘贴
4.3 删除一个换行符
- 普通模式下移动光标至需要删除换行符的那一行,使用
J
命令可删除改行换行符,使下一行内容与该行连接
4.4 删除空行
- 普通模式下移动光标到空行处,使用
dip
命令可删除该行及其周围的所有空行
4.5 删除特定符号包含中的内容
- 普通模式下移动光标至特定符号(如括号
{}
、[]
、()
、<>
与引号""
、''
)包含的任意字符上,使用di特定符号
命令可删除特定符号包含的内容;如移动光标至内容(“string” + 123)的括号中,使用di(
或di)
删除()中的所有内容,移动光标至"string"中string的任意字符上,使用di"
删除引号""包含的所有内容 - 如果想将特定符号与内容一并删除,可使用
a
替换i
,如使用da(
来删除括号及其其中的所有内容 - 同样也可以将
d
替换为c
、y
、v
来修改、复制、选中内容,如使用yi"
命令来复制""中的内容,使用ca"
命令将引号及其包含的内容删除并进入插入模式来修改
4.6 删除指定行内容
- 普通模式下,输入
:n1,n2 d
可删除n1到n2(包含n1与n2)行的内容 - 同样的,普通模式下,输入
:n1,n2 co n3
可将n1到n2行的内容复制到n3行下,输入:n1,n2 m n3
可将n1到n2行的内容剪切移动到n3行下
5. 普通模式下撤销/重做操作
5.1 撤销操作
- 普通模式下使用
u
命令可撤销一次之前的操作
5.2 重做操作
- 不小心撤销太多,可在普通模式想使用
CTRL+R
组合键命令重做一次撤销操作
6. 普通模式下查找/替换操作
6.1 查找操作
- 在普通模式下,输入
/
与字符的组合命令即可向下查找(相对于光标而言)指定字符相关的文件内容,如/word
即向下查看文件中包含 word 字符的内容,输入?
与字符的组合命令即可向上查找指定字符相关的文件内容 - 查找之后,按键
n
可重复一次查找命令,即重复向下或向上查找一次;按键N
可重复一次查找命令,只不过查找方向与n
相反 - 查找的内容需要忽略大小写,可输入命令
:set ignorecase
设置忽略大小写,输入命令:set noignorecase
取消忽略大小写 - 查找指导字符结尾的单词,如指定单词以es结尾,可使用
/es\>
;同样的,指定单词以es开头,可使用命令/\<es
;只想匹配es这两个字符,可使用命令/\<es\>
- 查找内容的
/
与?
命令,可以使用正则表达式,同样的,需要匹配特殊字符时需要进行转义,即在特殊字符前加\
,如匹配英文句号end\.
6.2 替换操作
-
在普通模式下,光标移至某字符,使用命令
r
与新字符组合可替换旧字符,如文本he
,将光标移至e后方,按ra
可将he
替换为ha
-
在普通模式下,输入命令
:%s/被替换内容/新内容/g
完成全文内容替换(将%换为n1,n2来只替换n1行到n2行的内容替换),和查找一样,特殊字符需要转义,只想匹配完整特定字符时,使用\<
与\>
包含该特定字符,如\<hello\>
只匹配完整的hello -
普通模式下使用替换命令完成注释与取消注释,如输入命令
:n1,n2s/^/#/g
为在n1行到n2行的行首添加#,这样就完成了注释,#可换为其他符号(需要注意转义);输入命令:n1,n2s/^#//g
为把n1到n2的行首的#替换为空来完成取消注释