¿Existe un comando `describe-command ', similar al comando` describe-function'?

14

Utilizo C-h fmucho, pero estas son todas las funciones en Emacs. A menudo solo me interesan las funciones interactivas, es decir, los comandos.

¿Hay un equivalente para los comandos? Idealmente, también me gustaría que yo terminara.

Wilfred Hughes
fuente
1
Siguiente pregunta, ¿por qué esto no está en Emacs?
Jonathan Leech-Pepin
1
@ JonathanLeech-Pepin: Propuesto, pero rechazado por Emacs Dev.
Dibujó el

Respuestas:

12

Si. La biblioteca help-fns+.eldefine el comando describe-command.

Y se redefine describe-functionpara que así sea describe-commandsi le das un prefijo arg.

La biblioteca se une describe-commanda C-h c( describe-key-brieflyse mueve a C-h C-c).

La misma biblioteca define otros comandos de ayuda, tales como describe-file, describe-buffer, describe-keymap, y describe-option-of-type. Aquí hay más información sobre la biblioteca.

Dibujó
fuente
1
Realmente me gusta help-fns +, pero está agregando un gran espacio y un comentario genérico sobre cada función que miro: imgur.com/NiDlkjS , ¿alguna idea?
Wilfred Hughes
@WilfredHughes: debería estar bien ahora . (También debe reflejarse en MELPA dentro de las 24 horas)
Dibujó el
El enlace de Drew del comentario @ 18:25 está roto. emacswiki.org/emacs/download/help-fns%2b.el funciona.
Realraptor
1
@Realraptor: Gracias. Las URL de EmacsWiki cambiaron hace unos años.
Dibujó el
9

apropos-command podría estar lo suficientemente cerca.

No ofrece describe-functionla finalización de la pestaña, pero le permite buscar solo a través de comandos y lo lleva a su página de documentación.

Malabarba
fuente
8

Si tiene instalado smex, simplemente llame a smex. Comience a escribir, cuando aparezca el correcto, presione Ch f.

Xah Lee
fuente
7

No puedo encontrar esto incorporado. Es bastante fácil crear un contenedor describe-functionque solo complete los nombres de los comandos cuando se llama de forma interactiva. En la implementación a continuación, dupliqué el formulario interactivo describe-functiony cambié la fboundpprueba a commandp. Como una ventaja adicional, esta función ofrece todos los nombres de funciones cuando se llama con un argumento prefijo. Cambie if current-prefix-arga if (not current-prefix-arg)para que la descripción de todas las funciones sea la predeterminada.

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

No he probado esto con ido, pero debería integrarse normalmente.

Gilles 'SO- deja de ser malvado'
fuente
La prueba rápida muestra que funciona con IDO. Copiado a *scratch*, evaluado luego corrió M-x describe-command. Los comandos aparecieron en una lista vertical gracias a ido-vertical.
Jonathan Leech-Pepin
¿No debería ser la última línea (describe-function command)?
npostavs
5

Si está utilizando helm and helm-M-x, puede presionar C-jlos comandos para que aparezca su documentación.

Marta
fuente