Чи існує команда `опису-команда ', подібна до команди` описувати-функцію'?


14

Я C-h fдуже використовую , але це всі функції в Emacs. Мене часто цікавлять лише інтерактивні функції, тобто команди.

Чи є еквівалент командам? В ідеалі я також хотів би завершити програму ido.


1
Наступне питання, чому цього немає в Emacs?
Джонатан Ліч-Пепін

1
@ JonathanLeech-Pepin: Запропоновано, але відхилено Emacs Dev.
Дрю

Відповіді:


12

Так. Бібліотека help-fns+.elвизначає команду describe-command.

І він переосмислює describe-functionтак, щоб це зробити, describe-commandякщо ви дасте йому префікс arg.

Бібліотека пов'язує describe-commandдо C-h c( describe-key-brieflyпереміщається C-h C-c).

Та ж бібліотека визначає інші команди довідки, такі як describe-file, describe-buffer, describe-keymap, і describe-option-of-type. Ось додаткові відомості про бібліотеку.


1
Мені дуже подобається help-fns +, але це додає великого простору та загального коментаря до кожної функції, яку я дивлюсь: imgur.com/NiDlkjS - якісь ідеї?
Вілфред Х'юз

@WilfredHughes: Зараз має бути гаразд . (Також слід відобразити MELPA протягом 24 годин.)
Дрю

Посилання Дрю з коментаря @ 18:25 розірвано. emacswiki.org/emacs/download/help-fns%2b.el працює.
Realraptor

1
@Realraptor: Дякую URL-адреси EmacsWiki змінилися кілька років тому.
Дрю

9

apropos-command може бути досить близьким.

Він не пропонує describe-functionзавершення вкладки, але він дозволяє шукати лише за допомогою команд, і перенесе вас на їх сторінку документа.


8

якщо у вас встановлений smex, просто телефонуйте smex. Почніть вводити текст, коли з’явиться правий, натисніть Ch f.


7

Я не можу знайти це вбудоване. Зробити обгортку навколо досить просто, describe-functionяка лише виконує імена команд, коли викликається інтерактивно. Під час виконання нижче я скопіював інтерактивну форму з describe-functionі змінив fboundpтест на commandp. Як додатковий бонус, ця функція пропонує всі назви функцій, коли їх викликає аргумент префікса. Змініть, if current-prefix-argщоб if (not current-prefix-arg)зробити опис усіх функцій за замовчуванням.

(defun describe-command (function &optional all-functions)
  "Display the full documentation of FUNCTION (a symbol).
When called interactively with a prefix argument, prompt for all functions,
not just interactive commands, like `describe-function'."
  (interactive (if current-prefix-arg
                   (eval (car (cdr (interactive-form 'describe-function))))
                 (list (let ((fn (function-called-at-point))
                             (enable-recursive-minibuffers t)
                             val)
                         (setq val (completing-read (if (and fn (commandp fn))
                                                        (format "Describe command (default %s): " fn)
                                                      "Describe command: ")
                                                    obarray 'commandp t nil nil
                                                    (and fn (commandp fn)
                                                         (symbol-name fn))))
                         (if (equal val "") fn (intern val)))
                       current-prefix-arg)))
  (describe-function function))

Я не перевіряв це на ido, але він повинен нормально інтегруватися.


Швидкий тест показує, що він працює з IDO. Скопійовано *scratch*, оцінено, потім побігло M-x describe-command. Команди показали у вертикальному списку завдяки ido-vertical.
Джонатан Ліч-Пепін

Чи не повинен бути останній рядок (describe-function command)?
npostavs

5

Якщо ви використовуєте штурвал і helm-M-x, ви можете натиснути C-jна команди, щоб вискакувати їх документацію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.