Emacs如何通过字符快速导航?

8
我发现了一个有趣的包,可以通过字符快速导航,但我找不到它了,也记不得它的名字。显然这个想法来自vim。肯定有一个emacswiki页面介绍它。
基本上,你按下一个键进入一个小模式,输入一个搜索词,它就会使窗口变暗,并顺序高亮显示窗口中所有符合搜索词的内容。然后你可以按'a'去第一个,按'b'去第二个,以此类推。
需要帮助吗?
编辑:我会加上vim标签,因为vim包的名称足以让我找到它。

请注意,内置的 M-x occur 提供了部分的功能,标准的 C-s 也提供了相同的功能,它可以高亮显示所有出现给定搜索词的匹配项,并让您通过再次键入 C-s 或向后循环按下 C-r 来遍历匹配项。同时,尝试使用 C-u C-s 以相同的方式进行正则表达式搜索。 - Thomas
这一切都关乎速度。我的目光聚焦在我想要的位置,我不想跳过中间的匹配项。如果匹配项接近,那么iy-go-to-char可以节省isearch的按键次数。 - event_jr
我还应该补充说明,我已经在isearch的基础上重新实现了iy-go-to-char,以实现惰性匹配高亮、与acejump的集成以及其他各种改进。http://github.com/lewang/jump-char - event_jr
3个回答

14

Ace-jump-mode似乎是你要找的东西。

AceJump的灵感来自一个叫做EasyMotion 的vim插件。EasyMotion 提供了一种更简单的vim motions使用方式。它通过高亮显示所有可能的选项,允许您按下一个键就可以直接跳转到目标,省去了在w或f{char}之间选择的麻烦。因此,我决定为Emacs编写类似的东西。

这个小模式使您能够:

  • 跳转到单词
  • 跳转到单词中的任何字符
  • 跳转到行

维基页面也可在Emacswiki上找到。


2
你能否在这个答案中添加更多的细节,而不仅仅是一个链接?即使你链接到了一个相当稳定的网站,这也有助于减少链接失效的可能性,并且它将提高未来访问者对这个问题的质量。 - jwheron
1
对于一个独立于GitHub存储库的源,这里是EmacsWiki链接:http://www.emacswiki.org/emacs/AceJump - Rörd
在IntelliJ IDEA中,也有一个Acejump插件。http://plugins.jetbrains.com/plugin/?idea_ce&pluginId=7163 - whunmr

2
如果只需要Vim软件包名称:我认为你指的是EasyMotion。 点击此处了解更多信息。

1

2
我有并使用这个。但是我看到的包裹工作方式不同。与其按住一个键来遍历匹配项,你按下对应于你想要的匹配项的字母。似乎可以更快。 - event_jr
啊哈,我的错误。我刚刚尝试了ace-jump-mode,就像@Daimrod建议的那样,我认为它比iy-go-to-char慢:匹配项从缓冲区的开头而不是光标位置开始进行“编号”,因此您将始终需要等待一段时间,同时读取缓冲区寻找“a”、“b”标记等。 - sanityinc
@TacticalCode 感谢您抽出时间进行评论。我会重新审视 ace-jump-mode - sanityinc
@sanityinc:event_jr在另一个帖子中也评论说,有一种模式可以使用,类似于iy-go-to-char,但如果需要的话可以“切换”到ace-jump-mode:它被称为jump-char.el,由“Le Wang”制作(我认为是event_jr,但我可能错了)。我还没有花时间研究它,但它看起来很有趣:它将传统搜索与ace-jump-mode结合起来。但是,是的:再试一次ace-jump-mode,首先查看您想要去哪里,然后调用它:我将M-e分配给ace-jump-char-mode,速度非常快:) - TacticalCoder
@TacticalCoder 没错,昨天我也发现了这个问题,现在我也在使用它。感谢你的指引。 - sanityinc
显示剩余5条评论

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