VIM快速删除
一、命令行模式下简化删除
- 向后删除单个字符:【x】
- 向前删除单个字符:【X】
- 删除从光标开始到单词结尾:【dw】
删除从光标后的2个单词:【d2w】 - 删除整个单词:【daw】
仅当光标停留在一个单词开头,【dw】才能删除整个单词,否则只能删除一部分;而【daw】不考虑光标的停留位置,只要在该单词上,则会自动删除整个单词 - 删除光标停留的那整行:【dd】
假设想连续删除多行,则用【4dd】连续删除4行 - 从光标处往前删除单词:【db】
和【dw】的作用方向正好相反 - 删除光标位置到本行开头:【d0】
- 点命令【.】含义是重复上次修改,上次修改的单位可以是字符,整行,甚至整个文件。
因此如果删除整行【dd】,配合【.】也可以起到重复操作的目的。
点命令最大的用处在于,每次从输入模式到命令模式切换时,整个阶段vim会记录每一个按键操作,使用点命令可以重新执行所有的这些按键操作,就好像“一键回放”,我们可以把点命令当成一个宏。
比如要给结构体语句添上‘;’号
按照常规方法做会比较慢,这时候光标先移动到第一条语句上,【A】【;】【ESC】
再反复使用【j】【.】即可。
二、简化行光标移动
- 光标移动到行尾 【】2.光标移动到行尾并进入输入模式,类似于【】2.光标移动到行尾并进入输入模式,类似于【】【a】: 【A】
- 光标移动到行尾并回车,再进入输入模式,类似于【$】【enter】【a】: 【o】
小o的作用类似于新建一空白行 - 光标移动到行首【^】
- 光标移动到整个文件头部【gg】
- 光标移动到整个文件尾部【G】
- 跳转到指定的行
在编辑模式下,输入ngg,或者nG;在命令模式下输入行号 :n
(n为行号)
三、简化行内光标移动
- 光标移动到单个字符:【f】,也用于查找。比如要在本行移动光标至字符处,直接【f】即可
- 无需输入即可移动光标,查找:【*】
- 【w】移动光标到下一个单词开头,【b】移动光标到上一个单词开头,两者均可跨行
- 配合点命令【.】以及【】星命令,就能实现快速的查找并替换。
首先在需要被替换的单词上按【】,然后【a】修改第一个单词,完成后【ESC】,此时vim已经记住了操作,剩下的就是重复【n】查找下一个,【.】回放操作。
仔细体会vim对重复操作的简化,追求的是一键移动,一键操作修改。