Vim 按行编辑详解

回忆上节课内容🤔

光标的运动

  • 命令行是什么?
    • 命令行就是我们熟悉的冒号:
    • 比如:h :
      • 可以查询命令行的帮助
  • 在命令行上如何控制光标运动呢?
  • 比如已经打出了 :oeasy o2z o3z
    • 左右方向键 ⬅️➡️️</kbd
    • ctrl+⬅️ctrl+➡️️按单词左右运动
    • shift+⬅️shift+➡️️按单词左右运动
    • ctrl+b 回到命令行开头begin
    • ctrl+e️ 回到命令行结尾end
    • ctrl+w 删除光标之前的单词word
  • 编辑好命令之后
    • 命令行模式是通过最后的回车
    • 完成命令的输入的

命令行的操作

  • dnormal 模式下的删除命令
  • :d命令行 模式下的删除命令
  • 关于命令行命令
    • 我们可以使用:h :d
    • 来观察一下d命令是如何按行进行 删除

图片描述

  • 我们来试试
  • :d 可以删除当前行
  • 帮助中这个[range] 是干什么用的呢?🤔
    • 什么不会就 h 什么呀!
    • 可以 :h range

[range]范围

图片描述

  • 最常见的就是 范围
  • 比如 1,4 就是从第 1-4
  • 然后再后面加上 d 操作
  • :1,4d 就是 1 - 4 行都删除
  • 可以把行号列出来:se nu
  • range 可以复制 yank 吗?
  • 查一下帮助啊

[range]yank 范围复制

  • :h :y

图片描述

  • 2,5y2-5 行都 yank 下来
  • yank到了什么?
    • 可以用 :reg 看一下
  • 如果想用制定寄存器"a呢?
    • 那就:2,5y a
    • 粘贴的时候
    • 就需要指定寄存器 "ap
  • 这样我们就可以快速的完成行的复制和删除
  • 其实还有效率更好的方法!!!

直接复制

图片描述

  • :h :copy可以看到相关的帮助,如上图
    • 更快速的写法是:t
    • :5,8t20可以把5-8行拷贝到第20行下面
  • 试一下
  • 这很爽
  • 如果我要移动到20行
  • 但是文本中只有10行会如何

范围

  • 移动的目标要注意范围
  • 同时文本中必须要存在20行的范围
    • 否则报错范围不存在

图片描述

直接剪切

  • :h m可以查询:move的用法
    • :5,8m2可以把5-8行移动到第2行

图片描述

  • 这也很爽👊
  • 不过前提是
    • 目标m{address}范围满足
  • 如果满足的话
    • 就移动到address下面

总结

  • 这次我们主要就是看看行编辑命令
    • d 是删除
    • y 是复制
  • 可以选择一个[range]范围
  • 然后进行相应的操作
    • :11,30d
    • :2,7y
  • 还可以指定寄存器
    • :3,40y a
    • :"aP
  • 甚至可以用一行就复制或者剪切内容
    • :12,30t50,12-30行复制到50行
    • :3,6m30,3-6行移动到30行
  • 这个 [range] 还有什么说法吗?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

深入拆解Java虚拟机 -〔郑雨迪〕

正则表达式入门课 -〔涂伟忠〕

如何讲好一堂课 -〔薛雨〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

人人都用得上的数字化思维课 -〔付晓岩〕

中间件核心技术与实战 -〔丁威〕

B端体验设计入门课 -〔林远宏(汤圆)〕