命令模式
vi启动后默认进入的模式,其他模式中按一下[Esc]键则返回命令模式
光标移动
h
左
l
右
k
上
j
下
Shift + ^
行首
Shfit + $
行尾
w
后一个单词的首字母
e
后一个单词的尾字母
b
前一个单词的首字母
gg
首行
G
尾行
100G
第100行
删除命令
x
删除单个字符
3x
删除3个字符
dd
删除1行
10dd
删除10行
dw
删除1个单词
复制操作
yy
复制1行
5yy
复制5行
yw
复制1个单词
2yw
复制2个单词
y^
复制光标所在位置到行首内容
y$
复制光标所在位置到行尾内容
3,5y
复制第3行到第5行
撤销命令
u
撤销最近一次操作
U
取消所有操作
Ctrl+r
恢复对使用u命令的操作
翻页
Ctrl + f
向前翻整页(forward)
Ctrl + b
向后翻整页(back)
Ctrl + u
向前翻半页(up)
Ctrl + d
向后翻半页(down)
可视模式
选定光标位置,命令模式下输入v
, 进入可使模式,移动光标选定内容
y
复制选定内容
yy
复制整行
d
剪切选定内容
dd
剪切整行
p
粘贴
末行模式
在命令模式输入:
即可进入该模式,可以对文件进行操作
退出
:q
退出
:wq
保存并退出
:q!
强制退出(放弃修改)
编辑器显示
:set nu
显示行号
:set nonu
不显示行号
查找替换
:/hello
从上到下查找 “hello” (这时的:
可以省略)
:?hello
从下到上查找 “hello” (这时的:
可以省略)
:s/old/new
从光标位置开始第一次出现的 “old” 替换成 “new”
:s/old/new/g
把一行中所有"old" 替换成 “new”
:s/old/new/gc
把一行中所有"old" 替换成 “new” , 替换前需用户确认
:3,5s/old/new/g
把第3行到第5行中所有"old" 替换成 “new”
:%s/old/new/g
把整篇中所有"old" 替换成 “new”
输入模式
进入输入状态
i
在当前光标进入插入状态
a
在当前光标后进入插入状态
A
将光标移动到行末, 并进入插入状态
o
当前行下面插入新行, 并进入插入状态
O
当前行上面插入新行, 并进入插入状态
cw
删除当前光标到所在单词尾部的字符, 并进入插入状态
c$
删除当前光标到行尾的字符, 并进入插入状态
c^
删除当前光标之前到行首的字符, 并进入插入状态