Emacs帮助模式:在源代码的顶部定位定义

时间:2012-02-05 14:23:47

标签: emacs elisp

我试图在Emacs Lisp源代码中将Emacs位置定义放在缓冲区的顶行,而不是在中心线上,从帮助缓冲区查找它们。

我的意思是:在通过`describe-function'查找函数后,你得到一个帮助缓冲区,如果在Emacs Lisp源文件中定义了这样的函数,你可以选择在这样的文件上按RET命名并被用于该函数的定义。但是,这样的定义将定位在屏幕的中心线上,而我希望它定位在顶行,以查看更多的实现。

我试着查看我可以提供的功能。 describe-mode' for Help said RET was bound to帮助跟随'我准备建议这样的功能,但看看它的定义,我认为它只是一个占位符:

(defun help-follow ()
   "Follow cross-reference at point.

   For the cross-reference format, see `help-make-xrefs'."
   (interactive)
   (error "No cross-reference here"))

有任何帮助吗?我正在使用Viper + Vimpulse,我不知道这是否会改变任何内容。

谢谢。

3 个答案:

答案 0 :(得分:1)

我觉得相关功能是help-button-action(它调用help-do-xref),因此您可能希望advise that在找到外部参照后设置所需的点。

答案 1 :(得分:1)

您可能希望使用find-function转到该函数的源代码。

它使用变量find-function-recenter-line,它是开始显示函数定义的行号。默认情况下,它的值为1,这应该是您所需要的。

函数的描述是声明后的注释,所以你真的不需要describe-function

答案 2 :(得分:0)

FWIW我使用这两个来快速跳转到函数/变量的源代码( C-h C-f C-h C-v

(define-key help-map (kbd "C-f") 'find-function-at-point)
(define-key help-map (kbd "C-v") 'find-variable-at-point)