M-g g(又名 M-x goto-line)表现得很奇怪



Emacs 菜鸟(有点)在这里。 我从转到行命令中得到了意外的行为。 手册的措辞似乎不准确。 我假设短语"移动到行行..."表示"设定点到线线"。 所以我对手册在goto-line上的条目的解释是,它应该在点的当前位置设置标记,然后将点移动到您输入的参数指定的行。 这是对的吗? 因为相反,发生的事情是,是的,它确实在当前位置成功设置了标记(我不关心,因为如果我愿意,我可以很容易地设置标记自己),但随后它会在缓冲区的开头设置点而不是我指定的位置。 这是gotoline应该做的吗? 我是否误解了此命令的手册或目的?

我从事的活动是阅读 Emacs Lisp 手册并评估其中的表达式。 我在左边距中打开了行号,我希望能够简单地做 M-g g 行号、C-e、C-x C-e 并查看表单的计算结果。 但相反,我必须做这个笨拙的例程,从目标线号中减去当前点线号,然后做 M-DIFFERENCE C-n。或者我只是C-nnnnnnnnn...或C-PPPPPP...甚至使用鼠标,这是我试图通过使用Emacs来摆脱的缓慢而笨拙的导航类型。

不幸的是,信息缓冲区中的goto-line正在处理源而不是呈现的结果。

(如果您访问elisp.info文件,您将看到实际行号的来源。

不幸的是,这对您(或任何人,我怀疑)没有帮助,但它确实解释了为什么该功能无法按预期工作。

您可以M-x report-emacs-bug并建议将其更改为人们期望的工作方式。

如果您使用的是 Emacs 26 及其本机display-line-numbers-mode那么您可以自定义display-line-numbers-widen选项以防止在缩小缓冲区时更改行号,在这种情况下,您将能够使用goto-line中看到的数字。

相关内容

最新更新