¿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.


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.


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.


8

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


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.