如何在Emacs中像Vim一样设置标记?

28

我希望能够像Vim一样在Emacs中设置多个标记。在Vim中,您可以按下mb来设置文件中该行的标记。稍后按下'b将把光标移回到该行。您可以使用m{a-zA-Z}设置多个标记。是否有办法在Emacs中实现多个标记?


你想要 evil-mode - Hi-Angel
5个回答

35

Emacs文档

C-x r SPC r

  • 记录在寄存器r中的点位置和当前缓冲区(point-to-register)。

C-x r j r

  • 跳转到寄存器r中保存的位置和缓冲区(jump-to-register)。

但如果您希望您的位置自动保留从一个Emacs会话到另一个会话,您应该使用书签

C-x r m RET

  • 在当前文件的点位置设置书签。

C-x r m 书签名 RET

  • 在点位置设置名为书签名的书签(bookmark-set)。

C-x r b 书签名 RET

  • 跳转到名为书签名的书签(bookmark-jump)。

C-x r l

  • 列出所有书签(list-bookmarks)。

M-x bookmark-save

  • 将所有当前书签值保存在默认书签文件中。

17
你可以使用 Emacs 所谓的 "寄存器"。有关寄存器的更好解释请参考文档。请注意保留原有的 HTML 标签。

谢谢。为了获得奖金加倍,您知道有什么方法/插件可以突出显示标记的行吗? - MDCore
没有,我不知道有什么方法可以这样做。虽然有一些命令,比如highlight-phrasehighlight-regexp可能会有用,但是标准构建中并没有像highlight-register这样的命令。 - High Performance Mark
@MDCore:我已经使用Emacs很多年了,但每次在SO上查看这个标签时仍然会学到一些新东西。谢谢。 - High Performance Mark

6

尝试使用标记环来快速标记:

C-space
在当前位置添加标记;同时,将该位置添加到标记环中。

C-xC-x
跳回到上一个标记。

C-UC-space
循环遍历标记环中的标记。

我在转向Emacs之前已经使用Vim十年了,虽然寄存器和书签看起来很好用,但实际上我90%的时间都在使用标记环。通常我只使用C-space、C-x C-x,但循环也可以。

顺便说一下,注意进行大范围的非箭头键移动(如M-v)通常会向标记环中添加一个标记。只要练习这些键盘组合,你就可能会发现它们足以应付大多数任务。

Radix已经很好地解释了寄存器和书签,它们对于需要经常引用或注释的文件位置很有用。


1
为了避免在跳转时(C-x C-x)激活瞬态标记,请使用前缀参数(C-u C-x C-x)。 - arvidj

5
Vanilla Emacs需要您为每个书签指定一个名称。听起来,您想要的是一种快速创建书签而无需命名的方法——只需按下一个键即可。您需要自动命名的书签,这可以通过Bookmark+实现。如果您喜欢,甚至可以将它们自动突出显示(使用 fringe 或行)。

0

是的,我正在寻找对我的分数的随机访问。那个分数环是一个栈。 - MDCore

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