在vim中特定的字母有特定的含义:
一, 动词
(1)单独执行的命令
x 删除单个字符.
p 复制缓存中的东西到现在位置
r 替换当前的单字符
a 在当前字符后面且换成插入状态
A 在当前行后面且换成插入状态
o 在当前行的下面新开一行,并换到插入状态
O 在当前行的上面新开一行,并换到插入状态
(2)可组合执行的命令
d 删除
D 删除当前光标到行尾的内容, 等价于 d$
i 换成插入状态
c 替换(与 d的区别是删除后直接在插入状态,d执行完后是在命令状态)
daw: 删除光标所在的单词(包含空格).
diw: 删除光标所在的单词(不包含空格)
二, 位置标识词
w代表后一个单词头 同时可以用来在单词之间跳 , 相反的跳法是 b
b代表前一个单词头
e代表后一个单词尾, 同时可以跳到单词尾 , 相反的跳法是 ge
gg代表文件头
G代表文件尾
$代表行尾, 同时可以用来跳到行尾
^ 代表文件头,同时可以用来跳到行头
三, 撤消命令
u 恢复上一次操作,
U恢复一整行
ctrl + R: 恢复之前 undo的东西.
四, 鼠标位置相关
gg 到文件头
G 到文件尾
ctrl+g : 显示当前鼠标的位置
ctrl+o 返回之前的位置
ctrl + i 返回新的位置
% 跳到对应的括号处
nG 跳到第n 行
n% 跳到文章的第n%的地方
ctrl+u ctrl+d 滚屏
zz 当前行置在屏幕中央.
ZZ 保存并退出vim
五, 查找
/ 顺序查找字符串:
?逆序查找字符串
n正向查找, N 反方向查找
查找语法:
:set ic 忽略大小写
:set noic 不忽略大小写
:set hls 高亮显示
:set is 增式搜索 随着输入动态搜索
单行查找 f字符, F字符(反方向) ; 重复之前的搜索 ,反方向重复之前的搜索.
六, 替换:
: (范围) s/原字符串/目标字符串/[g][c]
范围有两种表达方式: % 整个文本 n1,n2 从第n1行到第n2行.
g 替换整行中匹配的, 如果不加的话, 一行中只替换第一个找到的.
c 操作提示. 每找到一个匹配的,会问一下是否要替换
r 替换当前的单个字符
R 替换多个字符
七, 选择
按v 然后移动鼠标进行选择. 然后可以执行:w 文件名, 保存到文件中, 或者按p进行选择, 或者按d进行delete
ctrl +v 矩形块选择 . 这时 o 是在矩形块的对角之间跳 O是在矩形块的同一行的两端之间跳.
八, 复制
y 复制
yy复制一行
nyy 复制n行
在不同的vim窗口之间复制粘贴: "*yy "*p
九, 插入内容
p 将缓冲区的内容复制到当前位置
r filename : 将文件内容插入到指定位置
r !shellcmd 将shell命令的执行结果显示到当前位置
a 在当前字符后面且换成插入状态
A 在当前行后面且换成插入状态
o 在当前行的下面新开一行,并换到插入状态
O 在当前行的上面新开一行,并换到插入状态
九,保存和退出
:w filename
:q 退出
:q! 强制退出
十, 状态设置
set number 显示行号
set ruler 显示光标位置
set ic 设置忽略大小写
set showmode 当前的编辑状态
set is 递增搜索.
set hlsearch 高亮显示
:marks显示标记的列表. , 进行此次跳转之有跳点. " 上次编辑该文件时鼠标最后停留 的益. [ 最后一次修改的起始位置 ] 最后一次修改的结束位置.
十一,其它
:! shell cmd 执行外部的shell命令
:help cmd 看一个命令的帮助
在使用shell命令时, 可以用ctrl+ d和 TAB来将命令补足.