命令1: [vydc] [ia] [pair_char]
上面命令指的是该命令由三部分组成,每部分可以是[ ]里面的任意一个字符
第一部分指定“操作类型”
第二部分和第三部分指定“操作范围”,是基于当前光标所在位置的,这个非常重要
(1)
v: visual select
y: copy
d: delete
c: change,和delete的区别在于它会先delete,然后进入"insert mode";等价于先 d 然后按下 i 进入"insert mode"
(2)
pair_char 可以是一些成对的字符,比如 { [ ( < " ' 也可以使用它们的对应right close版本,比如} ] 等等
pair_char 的特殊情况, 可以是w, 代表光标所在的单词(以空格分隔), 这时中间是使用i还是a, 区别在于操作结果包不包括单词右边的空格
(3)
i: exclude the pair_char
a: include the pair_char
i 和 a 的区别在于指定的“操作范围”包不包括由pair_char指定的这一对字符,即 {} 或 [] 或 () 或 "" 等等
举个例子吧:
假设有一文本行为 abcd "fgh ijk <lmn>";
光标位于m处(下划线处)
vi< 作用:选中了 lmn
ya" 作用:复制了 "fgh ijk <lmn>"
di" 作用:删除了 fgh ijk <lmn>
ci< 作用: 删除了 lmn 并且进入了"insert mode",光标位于<>中间
命令2: [vydc] [tf] [a_char]
(1)
参见命令1的(1)
(2)
t: till, exclude the character 'a_char'
f: find, include the character 'a_char'
t和f 代表从左往右
另外,还可以使用大写的T和F,代表从右往左
(3)
a_char: 代表某一个字符,特殊情况是0和$, 代表行首和行尾
命令3: 大小写转换 gU, gu
(1)
[visual_select_something_by_someway]gU
[visual_select_something_by_someway]gU
先通过某种方式选择某个范围的内容(可以通过命令1,2中的v指令进行选择),然后将其转换成大写或小写
(2)
gU [ia] [pair_char]
gu [ia] [pair_char]
gU [tf] [a_char]
gu [tf] [a_char]
这种方式是先通过gU指定要转换成大写,然后通过后两部分指定“操作范围”
[ia] [pair_char] 参见命令1的解释
这里中间部分使用 i 或 a 好像是没有什么区别
[tf] [a_char] 参见命令2的解释
本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/