Esiste un comando "descrivi-comando", simile al comando "descrivi-funzione"?


14

Uso C-h fmolto, ma queste sono tutte funzioni di Emacs. Spesso sono interessato solo a funzioni interattive, ad esempio comandi.

Esiste un equivalente per i comandi? Idealmente mi piacerebbe anche il completamento ido.


1
Prossima domanda, perché non è questo in Emacs?
Jonathan Leech-Pepin,

1
@ JonathanLeech-Pepin: proposto, ma respinto da Emacs Dev.
Disegnò il

Risposte:


12

Sì. La libreria help-fns+.eldefinisce il comando describe-command.

E ridefinisce in describe-functionmodo che lo faccia describe-commandse gli dai un prefisso arg.

La libreria si lega describe-commanda C-h c( describe-key-brieflyviene spostata in C-h C-c).

La stessa libreria definisce altri comandi di aiuto, come describe-file, describe-buffer, describe-keymape describe-option-of-type. Ecco maggiori informazioni sulla biblioteca.


1
Mi piace molto help-fns +, ma sta aggiungendo un grande spazio e un commento generico su ogni funzione che guardo: imgur.com/NiDlkjS - qualche idea?
Wilfred Hughes,

@WilfredHughes: ora dovrebbe essere OK . (Dovrebbe anche essere specchiato sulla Melpa entro 24 ore.)
Drew

Il link di Drew dal commento @ 18:25 è rotto. emacswiki.org/emacs/download/help-fns%2b.el funziona.
Realraptor

1
@Realraptor: grazie. Gli URL di EmacsWiki sono cambiati alcuni anni fa.
Drew

9

apropos-command potrebbe essere sufficientemente vicino.

Non offre describe-functionil completamento della scheda, ma ti consente di cercare solo attraverso i comandi e ti porta alla loro pagina dei documenti.


8

se hai installato smex, chiama smex. Inizia a digitare, quando appare quello giusto, premi Ch f.


7

Non riesco a trovare questo integrato. È abbastanza facile creare un wrapper describe-functionche completi i nomi dei comandi solo quando viene chiamato in modo interattivo. Nell'implementazione di seguito, ho duplicato il modulo interattivo describe-functione modificato il fboundptest in commandp. Come bonus aggiuntivo, questa funzione offre tutti i nomi delle funzioni quando viene chiamata con un argomento prefisso. Passare if current-prefix-arga if (not current-prefix-arg)per rendere la descrizione di tutte le funzioni predefinita.

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

Non l'ho testato con ido ma dovrebbe integrarsi normalmente.


Il test rapido mostra che funziona con IDO. Copiato *scratch*, valutato e poi eseguito M-x describe-command. I comandi sono stati visualizzati in un elenco verticale grazie a ido-vertical.
Jonathan Leech-Pepin,

L'ultima riga non dovrebbe essere (describe-function command)?
npostavs,

5

Se stai usando helm e helm-M-x, puoi premere C-ji comandi per far apparire la loro documentazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.