如何在 Vim 编辑器中添加书签

举报
Tiamo_T 发表于 2021/11/25 08:10:14 2021/11/25
【摘要】 Mark 是 Vim 编辑器中的书签功能,您可以在其中为特定行添加书签,然后快速返回。如果您经常使用 Vim 编辑器,这种使用书签的简单技术将大大提高您的工作效率。

Mark 是 Vim 编辑器中的书签功能,您可以在其中为特定行添加书签,然后快速返回。如果您经常使用 Vim 编辑器,这种使用书签的简单技术将大大提高您的工作效率。

Vim 中有两种类型的书签——本地和全局。

1. Vim 本地书签

在单个文件中,当您想要转到特定位置或行时,您可以使用本地标记。如果书签名称是小写字母,则为本地标记。

如何在 Vi 中创建书签?

Type m{macro-name}。宏名称是指书签名称的字母表。


如果您键入“ma”,它将在当前位置的当前行上创建名为“a”的书签。在以下示例中,键入 ma 已在突出显示光标的确切位置创建了一个书签。

ma

Vi 为文件内的一行添加书签

图 1:使用 ma 在 Vim 中为当前位置添加书签

Vi中访问书签行的两种方法

方法 1:`{宏名称}

反引号后跟宏名称。移动到确切的书签位置。这将跳转到之前添加书签的行内的确切字符位置。



例如,如果您输入 `a ,它将带您到名为“a”的书签。即它会带你到上面图1中光标突出的地方。

`a

方法 2: '{宏名称}

单引号后跟宏名称。移动到书签行的开头。


例如,如果您键入 'a ,它将带您到具有名称为“a”的书签的行的开头。它将带您到上面图 1 中“CustomLog logs/access_log组合”行的开头。

'a

2. Vim 全局书签

当你打开多个文件时,如果你想在任何一个打开的文件中移动到特定位置,那么你可以使用 Vim 的全局标记功能。如果书签名称是大写字母,则为全局书签。

以下步骤将解释如何在编辑多个文件时使用全局书签。

  1. 打开多个文件:# vim /etc/passwd /etc/group
  2. 在编辑 /etc/passwd 文件时,转到特定行并键入 mP 以创建名为 P 的全局书签
  3. 在 /etc/passwd 文件中输入 :n 跳转到 vim 中的 /etc/group 文件。
  4. 编辑 /etc/group 文件时,转到特定行并键入 mG 以创建名为 G 的全局书签
  5. 输入`P(反引号后跟大写P),这将带您到/etc/passwd 中的书签
  6. 在 /etc/passwd 中,输入 `G(反引号后跟大写的 G),这会将您带到 /etc/group 中的书签。

3. 如何显示所有书签

如果您创建了多个书签但不记得它们,您可以通过键入 :marks 轻松获取所有书签的列表,如下所示。

:marks
mark line  col file/text
 a     15    9 ypserver 192.168.1.119
 b     11   18 domain TIAMO
 G     56    0 group
 P     45    0 passwd


这表明我已经创建了以下书签:

  • a – 第 15 行和第 9 列名称为“a”的本地书签。这也给出了第 15 行的文本。这是来自当前打开的文件,即 yp.conf
  • b – 第 11 行和第 18 列名称为“b”的本地书签。这也给出了第 18 行的文本。这是来自当前打开的文件,即 yp.conf
  • G – 全局书签,名称为“G”,位于“组”文件的第 56 行和第 0 列
  • P – 全局书签,名称为“P”,位于“passwd”文件的第 45 行和第 0 列。


除了上面的书签,任何时候你在 Vim 中输入 :marks ,你可能会得到以下几行。这些标记 '(单引号)、”(双引号)、[、]、^ 和 . (period) 默认由 vim 创建,您无法控制它。

:marks
mark line  col file/text
 '      8   12 #^IUse  broadcast  on  the local net for domain NISDOMAIN
 "      1    0 # /etc/yp.conf - ypbind configuration file
 [     11    0 domain TIAMO
 ]     11   19 domain TIAMO
 ^     11   19 domain TIAMO
 .     11   18 domain TIAMO


例如,标记 (句号) 表示最后进行更改的位置。所以,你总是可以做`。(反引号后跟句点),这将带您到上次更改完成的位置。

4. Vim 书签命令快速总结

  • ma – 创建一个名为 a 的书签
  • `a – 跳转到书签 a 的确切位置(行和列)
  • 'a – 跳转到书签 a 行的开头
  • :marks – 显示所有书签
  • :marks a – 显示名为 a 的书签的详细信息
    `.– 跳转到执行最后更改的确切位置(行和列)
  • ‘. – 跳转到最后一次更改所在行的开头


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。