Режим справки Emacs: определения местоположения в верхней строке исходного кода - PullRequest
2 голосов
/ 05 февраля 2012

Я пытаюсь сделать определения положения Emacs для функций и переменных в исходном коде Emacs Lisp в верхней строке буфера, а не в центральной строке, после поиска их из буфера справки.

Я имею в виду: после поиска функции с помощью `description-function 'вы получаете буфер справки, и если такая функция была определена в исходном файле Emacs Lisp, вам предлагается выбрать RET для имени такого файла ипринято к определению этой функции.Однако такое определение будет располагаться на центральной линии экрана, в то время как я бы хотел, чтобы оно было расположено на верхней строке, чтобы увидеть больше его реализации.

Я попытался посмотреть, какую функцию ямог бы посоветовал.describe-mode' for Help said RET was bound to help-follow ', и я был готов дать совет такой функции, но, глядя на ее определение, это был просто заполнитель, я думаю:

(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 ]

1 голос
/ 05 февраля 2012

Вы можете использовать find-function для перехода к исходному коду функции.

Используется переменная find-function-recenter-line, которая является номером строки, с которой начинается отображение определения функции.По умолчанию это значение равно 1. Это должно быть именно то, что вам нужно.

А описание функции - это комментарий после объявления, поэтому вам не нужно describe-function.

.
1 голос
/ 05 февраля 2012

Мне кажется, что соответствующая функция help-button-action (она вызывает help-do-xref), поэтому вы можете посоветовать установить точку, где вы хотите, после того, как найдена внешняя ссылка.

0 голосов
/ 06 февраля 2012

FWIW Я использую эти два для быстрого перехода к исходному коду функции / переменной ( Ch Cf , Ch Cv )

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