移动
k (上行)
h (左移) l (右移)
j (下行)
0行头 $行尾 e 单词结尾 w单词开头 Ctrl+e 窗口内容向下移动 Ctrl+y窗口内容向上移动
Ctrl-g 显示当前光标所在位置和文件状态信息。
Shift-G 用于将光标跳转至文件最后一行。
LineNumber Shift-G 将光标移动至该行号代表的行
字符编辑
i 在当前位置开始编辑
a 在当前位置之后开始编辑
x 删除光标所在位置的字符
A 在当前行末尾开始编辑
dw 从当前光标删除至单字/单词末尾
d$ 从当前光标删除至当前行末尾
dd 删除整行
u 撤消以前的操作
U 撤消在一行中所做的改动
CTRL-R 撤消以前的撤消命令,恢复以前的操作结果
p 重新置入已经删除的文本内容
r 替换光标所在位置的字符
cw 替换当前光标到单词的末尾的内容
c$ 替换当前光标到行末的内容
小写的 o 在光标下方打开新的一行并将光标置于新开的行首,进入插入模式
大写的 O 在光标上方打开新的一行并将光标置于新开的行首,进入插入模式
小写的 a 在光标所在位置之后插入文本
大写的 A 在光标所在行的行末之后插入文本
大写的 R 进入替换模式,直至按 <ESC> 键退出替换模式而进入正常模式。
% 将光标移动到配对的括号上
搜索替换
输入 / 然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。
输入问号 ? 然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字
符串。完成一次查找之后按 n 键则是重复上一次的命令,可在同一方向上查
找下一个字符串所在;或者按 Shift-N 向相反方向查找下该字符串所在。
在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc
命令格式
在正常模式下一个命令的格式是∶
[number]
command object
或者 command
[number] object
其意是∶
number - 代表的是命令执行的次数
command - 代表要做的事情,比如 d 代表删除
object - 代表要操作的对象,比如 w 代表单字/单词,$ 代表到行末等等。
文件操作
:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文
件中。
:#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件
FILENAME 中。
:r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置
后面。