Emacs快捷键:跳转到文件中的特定行

58

在使用Notepad++两年之后,我正在学习Emacs作为默认编辑器。虽然我仍有些困惑,但我发现自己很享受使用它的工作。

我的问题很简单:在Notepad++中,当我想要进入文件的特定行时,我使用 CTRL+G 快捷键。而对于Emacs,出于某种令人困惑的原因,我需要使用 M-x goto-line [enter] $linenumber [enter] 命令。

我无法相信没有快捷方式可以实现此功能。我一定是搜错了吧?

5个回答

74

M-g gM-g M-ggoto-line 命令的默认绑定键。

而最简单的方法是使用 M-x where-is RET goto-line RET,它会列出命令 goto-line 的所有绑定键。或者你可以输入 C-h b 来查看当前缓冲区的所有绑定键(然后你可以浏览绑定键来查看是否存在 goto-line,或发现其他有用的命令和绑定键)。


21
学习Emacs时,永远不要感到自己很愚蠢。这是一段漫长的旅程,还有很长的路要走。 - aartist

8
Trey Jackson的回答是正确的,但在Emacs中了解如何自行发现这种事情也很有用。在您的情况下,您知道命令的名称--goto-line。如果您键入“C-h w”(Control+h,然后w),Emacs会询问您“命令在哪里:”。输入goto-line并按Enter,它将告诉您绑定到该命令的按键(如果有的话)。
还有一堆类似的功能。'C-h k'执行相反操作--要求您输入一个按键,然后告诉您运行的命令;'C-h b'显示所有当前键绑定;'C-h a'将搜索字符串,因此您可以键入'C-h a goto'来搜索具有“goto”名称的命令;'C-h v'描述变量;'C-h f'描述函数;等等。

如果您激活了suggest-key-bindings,您将会看到一条消息,类似于“您可以使用M-g运行命令'goto-line'”_自动地。要做到这一点,请输入(setq suggest-key-bindings 't)。 - mmaruska
您还可以输入 C-h ? 查看帮助命令列表,这将列出所有上述内容。 - Daniel Ziltener

0

如果你是一个Emacs新手,这个网页提供了如何查找特定行号的详细解释。

对于我来说(在Mac上),使用M-x goto-line命令(我通过按下并立即释放Escape键来获取“M”元键)。


0
尝试使用

0

我推荐使用https://github.com/davep/goto-line-faster.el

这个插件可以将M-gM-g<number>简化为M-g<number>,而不会影响到M-g作为前缀绑定键的其他用途。

由于我经常使用这个命令,我发现这个小优化非常实用。


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