命令模式
- 基本
fn + ⬆️向上翻页
fn + ⬇️向下翻页
hjkl 左下上右
h 左
l 右
j 下
k 上
# command 跳转由#指定的个数的字符
w 下一个单词的词首
e 当前或下一个单词的词尾
b 当前或下一个单词的词首
H 页首 M 页中 L 页尾
gg 移动到这个档案的第一行,相当于 1G
G 移动到这个档案的最后一行
nG 移动到这个档案的第 n 行
x 删除光标处字符
# x 删除光标起始的#个字符
~ 切换大小写
d$ 删除到行尾
d^ 删除到行首
dd 删除所在行
y 复制 p粘贴 d剪切
d0 删除游标所在处,到该行的最前面一个字符
d$ 删除游标所在处,到该行的最后一个字符
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 撤销
ctr + r 取消撤销
. 重复上一个操作
ctr + f 向文件尾部翻一屏
ctr + b 向文件首部翻一屏
ctr + d 上半屏
ctr + u 下半屏 - 选中全部的文本
ggVG
- 保存并退出
ZZ
- 删除全文
ggyG
末行模式 ESC
-
保存
:wq!
w 保存
q 退出
! 强制执行
:e!
放弃所有修改,并打开原来文件
-
查找
/*** + enter 查找*** n下一个 往游标之后寻找该字串
?*** 往游标之前寻找该字串
-
替换:
:%s/A/B/g
全文
:n,ms/A/B/g
n到m-1行
:s/A/B/g
当前行
:.,+2/A/B/g
当前行与接下来2行
:%s/A/B/ig
:%s/A/B/gc
g--全局
i--大小写不敏感
I--大小写敏感
\c 大小写不敏感
Foo\c --> foo/FOO/FoO...
-
读写其他文件
:w [filename]
将编辑的数据储存成另一个文件(类似另存为)。
:r [filename]
在编辑的数据中,读入另一个档案的数据。将 filename
这个档案内容加到游标所在行后面。
:n1,n2 w [filename]
将 n1 到 n2 的内容储存成 filename 这个文件。
:! command
暂时离开 vim 到指令行模式下执行 command 的显示结果。
例如:! ls /home
即可在 vim 当中察看 /home 底下以 ls 输出的文件信息。
:set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号。
:set nonu
为取消行号显示。
输入模式
i 从光标所在处输入
I 在所在行的第一个非空格符处开始输入
a 从光标下一个字符处开始输入
A 从光标所在行的最后一个字符处开始输入
o 在所在的下一行处输入新的一行
O 在光标处的上一行输入新的一行
r 只会取代光标所在的那一个字符一次
R 会一直取代光标所在的文字,直到按下 ESC 为止