Vim 高级操作
这里只是列举了常用的部分,更多操作需在实践中练习。
概念
1. 数量参数
在操作前输入一个数字 n,会重复该操作 n 次。
比如 5l,相当于按了 5 次 l,可右移 4 个字符。
2. Vim 命令模式
命令 文本对象
比如命令可以是 c d y,文本对象可以是 w 2b 等。
3. 重复命令
. 重复执行相同的命令
4. 撤销命令
u 撤销执行刚才的命令
更多移动
1. 行内移动
0 移动到行首
$ 移动到行尾最后一个字符前
移动到行尾时,如果设置了软换行 wrapmargin(如::set wm=10),则移动到逻辑行行尾,而不是屏幕行的行尾。
2. 文本块移动
G 移动到特定行
还可以按单词、句子、段落、节(section)来移动
w 前移一个词(字母数字以外的字符分割)
W 前移一个词(空格分割)
b 移动到行首(字母数字以外的字符分割)
B 移动到行首(空格分割)
e 移动到单词结尾(字母数字以外的字符分割)
E 移动到单词结尾(空格分割)
( 移动到句首
) 移动到下句首
{ 移动到段首
} 移动到下段首
[[ 移动到节首
]] 移动到下节首
3. 屏幕滚动
CTRL-F 向前滚屏
CTRL-B 向后滚屏
CTRL-D 向前滚半屏
CTRL-U 向后滚半屏
z ENTER 屏幕居中
更多编辑
1. 两种进入编辑模式的方式
i 以 insert 方式进入编辑模式,光标在当前字符前
a 以 append 方式进入编辑模式,光标在当前字符后
2. 修改文本
c0 修改光标到行首
c$ 修改光标到行尾
cw 修改光标到单词结尾
c2b 修改光标到后两个单词
cc 修改整行
3. 删除文本
d0 删除光标到行首
d$ 删除光标到行尾
dw 删除光标到单词结尾
dW 删除光标到单词结尾,含空格
d2b 删除光标到后两个单词
dd 删除本行
3dd 删除三行
4. 放置文本
可理解为粘贴。
删除寄存器:删除的文本对象进入了删除寄存器
p 从删除寄存器获取最后删除的对象,放置在光标处
y 复制文本
5. 合并行
J 合并两行。可以按 . 反复操作。