oeasy教您玩转vim - 47 - # 使用标记

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这篇文章主要讲述oeasy教您玩转vim - 47 - # 使用标记相关的知识,希望能为你提供帮助。
使用标记 回忆上节课内容????

  • 有了这个rangeaddress我们可以做很多事情
    • 跳转:44
  • 复制和剪切
    • 1,3d
    • 3,$y
    • %d o
  • 配合搜索
    • /oeasy/,$y
    • 5; /oeasy/d
  • 其实还有一种address
    • mark 标记
  • 还记得 mark标记 是什么意思?????
查看手册????
  • :h mark 可以查看相应的细节
oeasy教您玩转vim - 47 - # 使用标记

文章图片

  • 我们可以使用< kbd> m< /kbd> 来定义一个标记
  • 比如我们在第 3 行 < kbd> m< /kbd> < kbd> a< /kbd>
  • 我们就在 第 3 行 标记了一个 mark 叫做 a
  • 这个标记能看见么?
查看标记
  • 我们用:marks
    • 就可以看到里面有了一个新mark
    • 名字叫做a
  • 注意这个a包括
    • 行、列坐标
    • 还有具体文本
oeasy教您玩转vim - 47 - # 使用标记

文章图片

查看具体标记
  • :marks abc
    • 查看具体abc这三个mark
oeasy教您玩转vim - 47 - # 使用标记

文章图片

跳转到引用
  • < kbd> m< /kbd> < kbd> a< /kbd>
    • 定义了一个名字叫 amark
  • < kbd> \'< /kbd> < kbd> a< /kbd>
    • 可以将光标从任意位置跳转到 标记a
  • 注意
    • 单引号是跳转到标记
    • 寄存器是放在后面的
  • 这个也可以配合行命令来操作
oeasy教您玩转vim - 47 - # 使用标记

文章图片

  • \'ay 就是把a标记那行,放入默认寄存器
  • 可以用:reg查看
  • \'a,\'b就是把从a标记那行,到b标记那行
    • \'a,\'b 相当于 3,5 是 {range}
  • 如果我想使用标记
  • 也想使用寄存器怎么办?
单双引号
  • :\'a,\'by o
    • \'a,\'b 是 {range}
    • y 是 yank复制
    • o 是制定的寄存器
【oeasy教您玩转vim - 47 - # 使用标记】
oeasy教您玩转vim - 47 - # 使用标记

文章图片

  • 如下是寄存器情况
oeasy教您玩转vim - 47 - # 使用标记

文章图片

  • ^J 是换行的标记
操控marks
oeasy教您玩转vim - 47 - # 使用标记

文章图片

  • marks不可见,但是可以存储文件信息
  • 小写字母ma
    • 用于当前文件 内部
  • 大写字母mA
    • 可以 跨文件 定义 marks
  • 0-9 的数字标记
    • 可以预先放到~/.viminfo的配置文件中
  • 可以查看指定的标记:marks a
  • 也可以删除标记
    • :delm(arks) a
    • 甚至清空所有标记,:delm(arks)!
常用标记
  • \'[上一次修改或复制的第一行或第一个字符
  • \'] 上一次修改或复制的最后一行或最后一个字符
  • \'& lt; 上一次在可视模式下选取的第一行或第一个字符
  • \'& gt; 上一次在可视模式下选取的最后一行或最后一个字符
  • \'\'上一次跳转之前的光标位置
  • \'"上一次关闭当前缓冲区时的光标位置
  • \'^上一次插入字符后的光标位置
  • \'.上一次修改文本后的光标位置
  • \'(当前句子的开头
  • \')当前句子的结尾
  • \'{当前段落的开头
  • \'}当前段落的结尾
总结
  • 我们这次研究了mark的定义和使用
    • mb定义
    • \'b跳转
    • 可以对marks查询
    • :delm(arks)! 删除
  • 三种marks
    • 小写 本文件内
    • 大写 跨文件
    • 数字 配置文件中
  • 可以在命令行中,使用标记
    • \'a,\'by从标记a的行复制到标记b的行
    • \'a,\'bt.把从a到b的行复制到当前位置
    • \'a,\'bmG把从a到b的行移动到文档最后
  • 命令行模式可真是太方便了!
  • 可是,你知道吗?
    • 命令行模式来自于ed
    • 本是当时的无奈之举?
  • 怎么回事?????
  • 下次再说 ????
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

    推荐阅读