注意: 这是初稿!!! 可能有错漏!!!
Vim 在正常模式 (Normal Mode) 下可以使用形如 <操作符> <次数> [<动作>|<文本对象>]
的指令, 此外可视模式 (Visual Mode) 也支持类似操作
操作符 (operator)
操作符 如下:
y
–复制d
–删除c
–替换 (删除并插入)
动作 (motion)
动作会对移动经过的所有文本都进行操作, 例如ggdG
将会删除全部文本
动作 如下:
^
软行首(不包含空白字符)0
硬行首$
行末_
最后一个非空字符f<字符>
F<字符>
跳到下/上一个指定字符处,f
指 find, 例如fa
跳到下一个字母 at<字符>
T<字符>
跳到下/上一个指定字符前,t
指 to, 例如t,
跳到下一个逗号前[命令对应按键]
整行w
(W
) ( 以空格分割的 )下个单词首字母b
当前单词开头e
当前单词结尾1G
第一行. 类似地,10G
就是第十行G
最后一行(
)
上一句/下一句
小写的 动作 意味着单词间的分隔符包含标点
动作单独使用时为移动光标
文本对象 (text object)
文本对象由它的类型和范围组成, 如ciw
中, c
是动作, iw
是文本对象. 其中 i 是范围, w 是类型
文本对象的范围
a
英文单词 “a” 或者 around, 会包括标点/空白符
i
表示 inner 或 in
文本对象的类型
共八种: w
s
p
""
<>
[]
()
{}
以及相应的大写. 如同前面的笔记所写, 大写无视标点.
举例
di"
i 表示 in, 删除双引号中的内容
ca'
a 表示 around, 连同单引号一起更改
diw
iw 即 inner word. 删除光标下单词.
dap
删除一个段落, 包括空白符.