oeasy教您玩转vim - 42 - # 剪切进入

一万年来谁著史,三千里外欲封侯。这篇文章主要讲述oeasy教您玩转vim - 42 - # 剪切进入相关的知识,希望能为你提供帮助。
show: step
version: 1.0
enable_checker: true 剪切进入 回忆上节课内容????

  • 上次我们了解到了各种寄存器
  • :reg
    • 无名寄存器""
    • 数字寄存器"0-"9
    • 行内删除专用寄存器"-
    • 指定寄存器"a-"z"A-"Z
    • 3个只读寄存器":"."%
      • ". 里面存储着上次插入的内容
      • "% 里面存储着当前文件的名字
      • ": 里面存储着刚刚执行的命令
    • 轮换文件寄存器"#
    • 表达式寄存器"=
    • 选择和拖拽寄存器"*"+"~
    • 黑洞寄存器"-
    • 搜索模式寄存器"/
  • 插入模式下< kbd> ctrl< /kbd> +< kbd> r< /kbd> 再加寄存器名称
  • 可以粘贴指定寄存器中的内容
  • < kbd> d< /kbd> 、< kbd> x< /kbd> 、< kbd> y< /kbd> 、< kbd> p< /kbd> 都在在正常模式
  • 删除之后能否自动切换进入插入模式呢?????
  • 翻帮助查到这个命令好像叫做 < kbd> s< /kbd>
找到手册????
  • 想要知道 < kbd> s< /kbd> 的作用,就要查一查
  • 也可以用 :h s
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

  • 这个< kbd> s< /kbd> 和< kbd> x< /kbd> 有点像
    • 都是删除当前字符
    • 都是默认放入无名寄存器""
    • 如果设定某个命名寄存器,就放入命名寄存器
    • 都可以通过[count]翻倍
  • 不同在于删除之后的的模式
    • < kbd> x< /kbd> 保持在 普通模式
    • < kbd> s< /kbd> 进入到了 插入模式
  • 这其实很爽
  • 因为很多时候删除了之后就是希望进入插入模式的!!!
  • < kbd> S< /kbd> 是删除当前这一行,然后进入插入模式
    • 相当于< kbd> d< /kbd> < kbd> $< /kbd> < kbd> i< /kbd>
有用的c
  • c 的意思是change
  • 这个< kbd> c< /kbd> 和< kbd> d< /kbd> 有点像
    • 都是删除当前内容
    • 都是默认放入无名寄存器""
    • 如果设定某个命名寄存器,就放入命名寄存器
    • 都可以通过[count]翻倍
    • 而且都支持motion
  • 不同之处就是就是完成工作后
    • < kbd> d< /kbd> 保持在普通模式
    • < kbd> c< /kbd> 进入到了插入模式
【oeasy教您玩转vim - 42 - # 剪切进入】
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

  • 比如我想把hello world!变成hello oeasy
  • 那么我需要
    • < kbd> d< /kbd> < kbd> w< /kbd> 删除到当前单词word词尾
    • < kbd> i< /kbd> 然后再进入插入模式
    • 输入oeasy
    • 然后< kbd> esc< /kbd> 完成
  • 现在我只需要
    • < kbd> c< /kbd> < kbd> w< /kbd> 删除到当前单词word词尾
    • 直接进入插入模式
    • 输入oeasy
    • 然后< kbd> esc< /kbd> 完成,一气呵成
  • 如果要删除的位置很远
  • 可以考虑< kbd> c< /kbd> < kbd> f< /kbd> < kbd> t< /kbd>
  • 配合< kbd> .< /kbd> 来操作
配合重复
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

  • n是下一个
  • .是cwfive< kbd> esc< /kbd>
    in操作
  • 这次我们的光标位置在这个单词中间
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

  • 我如果想要删除world怎么办?
    • 我需要先< kbd> b< /kbd> 回词头
    • < kbd> c< /kbd> < kbd> w< /kbd> 删除到词尾
    • 这还是有点麻烦
  • 现在只需要一句话
    • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> w< /kbd> 就可以一气呵成
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

in
  • 不论光标在单词里面什么位置
  • 只要是这个 word 范围内的都可以删除
  • 这个时候如果是 ciW 意味着不是 word 而是 WORD
  • 类似的还有·
    • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> (< /kbd> 、< kbd> c< /kbd> < kbd> i< /kbd> < kbd> (< /kbd> 删除小括号里面的
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> [< /kbd> 、< kbd> c< /kbd> < kbd> i< /kbd> < kbd> ]< /kbd> 删除中括号里面的
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> " < /kbd> 删除双引号里面的
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> \'< /kbd> 删除单引号里面的
  • 这在编程时是非常实用的!!!????
文字对象
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> s< /kbd> 删除当前这句
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> p< /kbd> 删除当前这段
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

tag块标签
git clone http://github.com/overmind1980/vimtutorial.git cd vimtutorial vi oeasy.html

  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> t< /kbd>
    • 删除tag里面的内容
  • < kbd> c< /kbd> < kbd> a< /kbd> < kbd> t< /kbd>
    • 删除包括标签本身
  • < kbd> c< /kbd> < kbd> 2< /kbd> < kbd> i< /kbd> < kbd> t< /kbd> 删除两层标签里面的
    • 这个功能在htmlxml很有效率
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

block块
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> {< /kbd> 、< kbd> c< /kbd> < kbd> i< /kbd> < kbd> }< /kbd>
    • 删除大括号里面的
  • < kbd> c< /kbd> < kbd> i< /kbd> < kbd> B< /kbd>
    • 也有同样的效果
    • < kbd> c< /kbd> < kbd> 2< /kbd> < kbd> i< /kbd> < kbd> {< /kbd> 、< kbd> c< /kbd> < kbd> 2< /kbd> < kbd> i< /kbd> < kbd> }< /kbd> 删除两层大括号里面的
    • 这个功能也可以和 < kbd> d< /kbd> 、< kbd> y< /kbd> 配合,非常爽!!
    • 大规模程序块控制
oeasy教您玩转vim - 42 - # 剪切进入

文章图片

关于ia的整理
  • h aw可以看到相关资料
  • w word 小词
  • W Word 大词
  • s sentence 句子
  • p paragraph 段落
  • () 小括号
  • [] 中括号
  • {} 大括号
  • t tag 标签
    • it 标签内部 不包含标签
    • at 标签外部 包含标签
  • "\' 引号
细节
  • < kbd> s< /kbd>
    • 相当于< kbd> c< /kbd> < kbd> l< /kbd>
    • 也相当于< kbd> d< /kbd> < kbd> l< /kbd> ,再进入插入模式
  • < kbd> S< /kbd>
    • 删除当前行< kbd> d< /kbd> < kbd> $< /kbd>
    • 再进入插入模式
  • < kbd> C< /kbd>
    • 相当于< kbd> c< /kbd> < kbd> $< /kbd>
    • 也相当于< kbd> d< /kbd> < kbd> $< /kbd> ,再进入插入模式
    • 也就是< kbd> D< /kbd> ,再进入插入模式
  • < kbd> c< /kbd> < kbd> c< /kbd> 就是
    • 删除当前行并进入插入模式
    • 等同于< kbd> S< /kbd>
  • < kbd> 2< /kbd> < kbd> C< /kbd>
    • 相当于删除两行,再进入插入模式
    • 也就是< kbd> 2< /kbd> < kbd> D< /kbd> ,再进入插入模式
总结
  • 这次我们学到的最有用的就是< kbd> c< /kbd>
    • 他和< kbd> d< /kbd> 的区别就是删除之后进入到插入模式
    • < kbd> c< /kbd> 可以配合motion
    • 可以用< kbd> c< /kbd> < kbd> i< /kbd> < kbd> w< /kbd> 来快速删除当前光标所在的单词
  • 可< kbd> i< /kbd> 和< kbd> a< /kbd> 的文字块
    • w word 小词
    • W Word 大词
    • s sentence 句子
    • p paragraph 段落
    • () 小括号
    • [] 中括号
    • {} 大括号
    • t tag 标签
      • it 标签内部 不包含标签
      • at 标签外部 包含标签
    • "\' 引号
  • 还有没有更快速的办法进行编辑吗?????
  • 下次再说 ????
[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

    推荐阅读