1.用动作命令在文档中移动
⑴对字符进行查找:f,t,F,T
①f , t (小写的)表示从前往后找,即正向查找;
②F,T(大写的)表示由后往前找,即反向查找;
③f(F)表示front,即前面的意思,就是光标会停在字母前
● f: 正向找到字母前,即→▕ w;
● F:反向找到字母前,即 ▕ w ←;
④t(T)表示transform是改变的意思,表示光标移动了
● t:正向找到距离字母一个空格的地方,即▕ w;
● T:反向找到距离字母一个空格的地方,即 w ▕ ;
⑤补充三点:
● 继续查找下一个同样字母,使用分号 “;”号跳转到下一个;
● 如果不小心错过了,使用逗号“,”回到上一个
● 快速跳跃用命令 w
注意:一般所说的字母位置就等于光标默认停靠的地方,即紧靠字母正前的地方,即▕w
使用技巧:一般的话会将命令联合起来使用,可以发挥更强大的作用。我们可以使用操作符待决模式,也就是不使用回车即可执行命令。
举一个例子,现在要删除“I’ve been expecting you, Mister Bond.”绿色部分,怎么做才能发挥出vim应有的威力?
方法:将删除命令和查找字符命令联合使用,即使用命令 f,df.
这个命令当然是不需要背的,在懂了一些基本的操作之后,就可以将它们灵活自由的组合, 发挥出强大的威力。
总结:在普通模式下,使用f和F;当与d命令一起使用时,即在操作符待决模式下,使用t和T。
⑵删除周边,修改内部
先来简单理解一下文本对象,就是在vim可视缓冲区里的命令组合即可视为一个操作文本,比如删除当前句子的命令:das或者dis,我们把这个称为文本对象,这一个简短的操作文本决定着被操作对象的命运(手动滑稽)。文本对象通常是成对出现的,一个用于操作对象内部文本,另一个用于操作对象周围的文本。vim的文本对象分为两类,一类是操作分隔符的文本对象,另一类用于操作文本块,如单词,句子,段落。这里对后一类对象做了总结。
▶单词 word
● iw:当前单词
● aw:当前单词及一个空格
说明:w表示被操作对象的类型是单词(word),i和a都是表示范围,i是inside,表示范围是单词内部;a是around,表示范围是单词周围(下同)。
▶字符串
● iW:当前字符串
● aW:当前字符串及一个空格
▶句子 sentence
● is:当前句子
● as:当前句子及一个空格
▶段落 paragraph
● ip:当前单词
● ap:当前单词及一个空格
使用方法:ciw命令,只删除单词,而不删除单词前后的空格,随后进入插入模式。
总结:d + aw / aW / as / ap 配合使用比较好,而c + iw 结合起来使用比较好。
2.复制与粘贴
⑴用无名寄存器实现删除,复制与粘贴操作
vim提供了几十组寄存器用于保存文本,而并非只用系统单一的剪贴板。
通常情况下,在讨论剪切,复制,粘贴这3组操作时,指的都是操作系统剪贴板。不过,在vim术语里,我们操作的是寄存器,而并非剪贴板。
● 调换字符命令 xp
例如:在输入vim时写成 ivm,只需使用命令xp即可调换成 vim。
说明:x命令将光标下的命令剪切下来,存到无名寄存器中,然后p命令将无名寄存器中的内容粘贴到光标
● 调换文本行 ddp
例如:调换如下两行顺序
I love linux.
Linux is my love.
使用命令ddp后:
Linux is my love.
I love linux.
● 复制当前行:yy
● 剪切当前行:dd
● 删除3行: 3 + d + Enter
● 复制3行: 3 + y + Enter