Come posso sapere quale pacchetto emacs integrato deve essere 'richiesto'?


8

Stavo leggendo il log delle modifiche per emacs 24.4 ( C-hn) e stavo cercando di vedere qual è la funzione di notifica dei file. Ho provato a fare C-hvuna variabile correlata auto-revert-use-notifyma non è apparso nulla.

Ho quindi cercato il nome di quella variabile nel codice sorgente di emacs e ho scoperto che era usato lisp/autorevert.el. Dopo aver fatto (require 'autorevert), tutte le funzioni e le variabili sottostanti sono state definite.

Domanda: Come faccio a sapere se e cosa devo fare requirese voglio usare una funzione integrata di emacs allora inattiva? È disponibile un elenco di tali pacchetti?


Uso spesso helm apropos per scoprire quali tipi di comandi / funzioni / variabili sono disponibili per me. Si scopre che a volte l'impostazione esatta che desidero è "integrata", ma devo requireprima il suo pacchetto.
nispio,

Risposte:


6

La risposta, per quanto ne so, alle tue domande è " Non puoi sapere " e " Non esiste un elenco di librerie del genere ".

apropose comandi simili si basano solo su ciò che è attualmente caricato o caricato automaticamente, non su ciò che viene distribuito con Emacs. A meno che qualcosa non sia (a) incorporato (cioè nel codice C), (b) disponibile da una libreria già caricata, o (c) caricato automaticamente, non viene scelto da tali comandi.

In tal caso, l'unico ricorso è la ricerca del codice sorgente (per quanto ne so). Grepping è un modo per farlo.

Se una variabile come auto-revert-use-notify(che è un'opzione utente) è esplicitamente menzionata in Emacs NEWS ( C-h N), sarebbe bello se quella menzione fosse collegata alla libreria di origine che la definisce, quindi puoi semplicemente RETpremere o fare clic mouse-2sul suo nome per aprire il file della libreria nella sua definizione. Si consiglia di utilizzare M-x report-emacs-bugper archiviarlo come richiesta di miglioramento.

(Potrebbe anche essere utile disporre di un comando per farlo in generale: cercare la definizione di una variabile o di una funzione nel codice sorgente distribuito, senza che sia necessario caricare la libreria. In questo caso, si conosceva il nome esatto della variabile, ma dovuto greptrovare dove è definito.)


Sembra che sia tempo di un require+pacchetto che ti consente di sfogliare i simboli di pacchetti che non sono stati ancora caricati. ;-)
nispio,

@nispio: provaci! Con comportamenti opzionali per cercare (1) librerie fornite con la distribuzione Emacs o (2) librerie nel tuo load-path. ;-) (Ma apropos+.elesiste già una libreria di nome , per quanto minima, e non si tratta proprio di questo require.)
Disegnato il
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.