Como posso saber qual pacote emacs interno precisa ser 'necessário'?

8

Eu estava lendo o Changelog do emacs 24.4 ( C-hn) e estava tentando ver qual é o recurso de Notificação de Arquivo. Eu tentei fazer C-hvuma variável relacionada, auto-revert-use-notifymas nada apareceu.

Então, procurei esse nome de variável no código-fonte do emacs e descobri que ele era usado no lisp/autorevert.el. Depois de fazer (require 'autorevert), todas as funções e variáveis ​​subjacentes foram definidas.

Pergunta: Como sei se e o que preciso requirese quiser usar um recurso interno do emacs então inativo? Existe uma lista desses pacotes disponíveis?

Kaushal Modi
fonte
Costumo usar o helm apropos para descobrir que tipos de comandos / funções / variáveis ​​estão disponíveis para mim. Acontece que, às vezes, a configuração exata que eu quero é "incorporada", mas preciso requireprimeiro do seu pacote.
Nispio 21/10

Respostas:

6

A resposta, até onde eu sei, para suas perguntas é " Você não pode saber " e " Não existe uma lista dessas bibliotecas ".

apropose comandos semelhantes são baseados apenas no que está atualmente carregado ou carregado automaticamente, não no que é distribuído com o Emacs. A menos que algo seja (a) incorporado (ou seja, no código C), (b) disponível em uma biblioteca já carregada ou (c) carregado automaticamente, ele não é escolhido por esses comandos.

Nesse caso, seu único recurso é pesquisar o código fonte (tanto quanto eu saiba). Grepping é uma maneira de fazer isso.

Se uma variável como auto-revert-use-notify(que é uma opção do usuário) for mencionada explicitamente no Emacs NEWS ( C-h N), seria ótimo se essa menção estivesse vinculada à biblioteca de origem que a define, para que você possa clicar RETou clicar mouse-2no nome dela. para abrir o arquivo da biblioteca para sua definição. Você pode usar M-x report-emacs-bugpara arquivar isso como uma solicitação de aprimoramento.

(Também pode ser útil ter um comando para fazer isso em geral: procure a definição de uma variável ou de uma função no código-fonte distribuído, sem que a biblioteca precise ser carregada. Nesse caso, você sabia o nome exato da variável, mas teve que grepencontrar onde está definido.)

Desenhou
fonte
Parece que está na hora de um require+pacote que permite navegar pelos símbolos dos pacotes que ainda não foram carregados. ;-)
nispio 21/10
@nispio: Vá em frente! Com comportamentos opcionais para pesquisar (1) bibliotecas fornecidas com a distribuição Emacs ou (2) bibliotecas no seu load-path. ;-) (Mas uma biblioteca chamada apropos+.eljá existe, ainda que mínimo, e isso não é realmente sobre require.)
de Drew