Em uma situação em que o Emacs não está se comportando como eu quero, o que posso fazer para solucionar o problema? Que etapas posso tomar para encontrar e corrigir o problema sozinho?
Ou, na sua falta, como posso reunir informações úteis para que as pessoas aqui (ou na lista de discussão ou em outros fóruns) possam me ajudar com o meu problema?
Meu Emacs inclui muitos pacotes, uma coleção de trechos copiados e colados (ou mortos e arrancados) de toda a Internet e meu próprio elisp personalizado, alguns dos quais não me lembro de escrever ou que não entendo mais. Existe uma maneira de entender todas essas complicações?
emacs -Q
como primeiro passo. Eu escrevi isso como algo para vincular essas perguntas a uma ajuda genérica para novos usuários.Respostas:
Etapa 1: executando
emacs -Q
A primeira coisa que você precisa fazer é executar o emacs sem nenhuma de suas personalizações. Se você pode reproduzir o problema no Emacs de baunilha, pode ser um bug no próprio Emacs. Isso é raro, mas descartamos isso como um primeiro passo.
Se você iniciar o Emacs a partir da linha de comando com a
-Q
bandeira, ou seja,emacs -Q
obterá um emacs simples ou 'vanilla', sem nenhuma de suas personalizações locais carregadas. Seu problema ainda ocorre? Nesse caso, pule para "Fornecendo uma receita de bug".Etapa 1b: e se o problema for com um pacote?
Se o seu problema for específico para um pacote específico, obviamente você não poderá reproduzi-lo sem carregar o pacote. Mas você deseja carregar apenas o pacote em questão, nem toda a sua configuração. Para fazer isso, execute
emacs -Q
novamente e prepare um script curto, como o seguinte:Substitua
package1
pelo nome do pacote que você deseja carregar. Se você precisar carregar vários pacotes, modifique o script adequadamente:Para carregar esse código, você pode colá-lo no
*scratch*
buffer e ligarM-x eval-buffer
. (ou qualquer buffer, desde que não tenha nenhum outro código!).Neste ponto, você carregou os pacotes e apenas os pacotes que está testando. Se você pode reproduzir o problema agora, pule para "Fornecendo uma receita de bug".
Etapa 2: Encontrando um bug no seu
.emacs
Agora você confirmou que o problema está vindo de algo em sua configuração ("a chamada vem de dentro da casa!"). Sua configuração pode ter muitos milhares de linhas e pode carregar muitos arquivos diferentes. Para encontrar o problema, você fará uma pesquisa binária, comentando metade do código de cada vez para restringir as coisas. 1 1
emacs
sem a-Q
opção.~/.emacs
ou.emacs.d/init.el
, se você não encontrar, tenteC-h v user-init-file
)C-space
para definir a marca, role para baixo até a metade para estender a regiãoM-;
e salve o arquivoemacs
(seu emacs de teste ), deixando o primeiro emacs em execução. O emacs de teste lerá a versão reduzida da sua configuração.undo
comente o comentárioC-/
e comente metade do código restante. Abra um novo emacs de teste e tente novamente.Se o seu problema está em um pacote específico, você terá que deixar o código que carrega esse pacote descomentado, é claro.
Se o seu arquivo de configuração carregar outros arquivos, você também poderá estender sua pesquisa nesses arquivos.
Neste ponto, você pode ter percebido que o problema ocorre devido a apenas uma ou duas linhas de código. Você pode até consertar você mesmo. Se sim, parabéns, você aprendeu alguma coisa! Caso contrário, avance para o passo três.
Etapa 3: Fornecendo uma receita de bug
Neste ponto, você deve poder fornecer uma receita detalhada de erros para postar aqui. Deve incluir:
M-x emacs-version
Por exemplo, eu posso postar uma pergunta como esta:
1 O pacote Bug Hunter pode ajudá-lo com isso, (semi-) dividindo automaticamente seu arquivo init.
fonte