VIM快速删除

发布时间 2023-09-02 16:53:59作者: 皮皮祥

一、命令行模式下简化删除

  1. 向后删除单个字符:【x】
  2. 向前删除单个字符:【X】
  3. 删除从光标开始到单词结尾:【dw】
    删除从光标后的2个单词:【d2w】
  4. 删除整个单词:【daw】
    仅当光标停留在一个单词开头,【dw】才能删除整个单词,否则只能删除一部分;而【daw】不考虑光标的停留位置,只要在该单词上,则会自动删除整个单词
  5. 删除光标停留的那整行:【dd】
    假设想连续删除多行,则用【4dd】连续删除4行
  6. 从光标处往前删除单词:【db】
    和【dw】的作用方向正好相反
  7. 删除光标位置到本行开头:【d0】
  8. 点命令【.】含义是重复上次修改,上次修改的单位可以是字符,整行,甚至整个文件。
    因此如果删除整行【dd】,配合【.】也可以起到重复操作的目的。
    点命令最大的用处在于,每次从输入模式到命令模式切换时,整个阶段vim会记录每一个按键操作,使用点命令可以重新执行所有的这些按键操作,就好像“一键回放”,我们可以把点命令当成一个宏。
    比如要给结构体语句添上‘;’号
    按照常规方法做会比较慢,这时候光标先移动到第一条语句上,【A】【;】【ESC】
    再反复使用【j】【.】即可。

二、简化行光标移动

  1. 光标移动到行尾 【】2.光标移动到行尾并进入输入模式,类似于【】2.光标移动到行尾并进入输入模式,类似于【】【a】: 【A】
  2. 光标移动到行尾并回车,再进入输入模式,类似于【$】【enter】【a】: 【o】
    小o的作用类似于新建一空白行
  3. 光标移动到行首【^】
  4. 光标移动到整个文件头部【gg】
  5. 光标移动到整个文件尾部【G】
  6. 跳转到指定的行
    在编辑模式下,输入ngg,或者nG;在命令模式下输入行号 :n
    (n为行号)

三、简化行内光标移动

  1. 光标移动到单个字符:【f】,也用于查找。比如要在本行移动光标至字符处,直接【f】即可
  2. 无需输入即可移动光标,查找:【*】
  3. 【w】移动光标到下一个单词开头,【b】移动光标到上一个单词开头,两者均可跨行
  4. 配合点命令【.】以及【】星命令,就能实现快速的查找并替换。
    首先在需要被替换的单词上按【
    】,然后【a】修改第一个单词,完成后【ESC】,此时vim已经记住了操作,剩下的就是重复【n】查找下一个,【.】回放操作。

仔细体会vim对重复操作的简化,追求的是一键移动,一键操作修改。