设置VIM书签

47

你如何在vim中设置书签?我想要标记一些行和函数。如何在代码中做一个书签?我的代码是用C语言写的。


1
你可能考虑查看exuberant ctags。它与vim集成得非常好。它允许您跳转到函数定义。在vim中相关的帮助部分是:h tagsrch.txt - FDinoff
3个回答

69
如果您键入ma,它将在当前位置的当前行上创建名为a的书签。
例如,键入ma已在光标高亮的确切位置创建了一个书签。
要在Vi中访问已标记的行,可以使用反引号后跟宏名称。移动到确切的书签位置。这将跳转到先前建立书签的那一行内的确切字符位置。
例如,如果您键入`a,它将带您到名称为“a”的书签。即它将带您到上面图1中高亮光标的位置。
`a

来源


6
看起来反引号会到达行的确切位置,而单引号会到达行的开头。 - JBaczuk
1
现在我如何删除一个书签。 - Alexei S
1
要删除书签,请执行 :delmarks {bookmark-name},例如 :delmarks a。在这里找到了链接 - Viesturs Knopkens

33

要跳转到标记,请输入撇号(')或反引号(`),然后加上一个字母。使用撇号可以跳转到保存该标记的行的开头,而使用反引号则会跳转到标记所在的行和列。

如果当前缓冲区中存在标记,则使用小写字母(例如 `a)即可跳转到该标记。如果使用大写字母(例如 `A),则会跳转到保存该标记的文件和位置(在跳转到标记之前不需要打开该文件)。

  • 每个文件都可以有标记a - 使用小写字母标记在文件内跳转。
  • 只有一个文件标记A - 使用大写字母标记在文件之间跳转。

命令 描述

ma 在当前光标位置设置标记a

'a 跳转到标记a所在的行(第一个非空字符所在的位置)

`a 跳转到标记a所在的位置(行和列)

d'a 从当前行删除到标记a所在的行

d`a 删除从当前光标位置到标记a所在位置的文本

c'a 更改从当前行到标记a所在的行的文本

y`a 将文本从光标位置复制到标记a所在位置的未命名缓冲区中

:marks 列出所有当前标记

:marks aB 列出标记a、B

来自Vim Wiki的参考资料


喜欢单引号而不是撇号...当你只用键盘时,撇号很尴尬。 - Saturn K

29

大写字母可以让您设置全局标记(即在所有缓冲区/选项卡中)。

因此,您可以使用 mA 设置全局书签 A ,然后即使在编辑不同文件时也可以使用 'A 到达该书签位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接