Que ótima pergunta! Aqui está o caminho que eu segui:
Etapa 0: Leia o Tutorial do Emacs
Leia o Tutorial do Emacs antes de mais nada. Parece que você fez isso. Bom em você! No entanto, para quem chega a esse ponto mais tarde, este é o lugar para começar sua jornada no Emacs. Existem muitas postagens de blog enganosas por aí. Eles complicam demais as coisas. O Emacs facilita:
- Iniciar o Emacs
- pressione
<RET>
Você também pode acessá-lo via Ctrl + h
t
ou C-h t
na notação Emacs.
O tutorial apresenta os conceitos básicos do Emacs, esclarece a terminologia histórica e faz você entrar em menos de 30 minutos. Ele também prepara o cenário para o próximo passo.
Etapa 1: Leia "Introdução à programação no Emacs Lisp"
O próximo passo é ler Uma Introdução à Programação no Emacs Lisp . Não posso recomendar este livro o suficiente; está tão bem escrito! Ele vem com a maioria das instalações do Emacs 1 . Simplesmente pressione C-h i
e selecione-o no menu. Você também pode acessá-lo diretamente via C-h i m Emacs Lisp Intro
.
O Prefácio declara,
Este texto foi escrito como uma introdução elementar para pessoas que não são programadores.
Deveria dizer "para pessoas que não são programadores de Lisp". O Lisp é um pouco diferente de outros idiomas, então vale a pena ler se você não estiver familiarizado com o Lisp. O autor tem um estilo acessível e percorre muitos exemplos. Levei cerca de uma semana para trabalhar.
Etapa 1.5: Dicas de desenvolvimento do Emacs Lisp com John Wiegley
No final de 2015, John é o mantenedor do projeto Emacs . Sacha Chua faz uma ótima entrevista com ele aqui, na qual John aborda o básico do Emacs Lisp, o ambiente de desenvolvimento, e fornece muitos bons conselhos.
Etapa 2: Leia OPC (código de outras pessoas)
2a Leia o código fonte
Como o Emacs é "o editor de exibição extensível, personalizável, auto-documentável e em tempo real", todo o código-fonte está incluído. Aprenda a usar os recursos de ajuda, C-h f
para uma função e C-h v
para uma variável. Sempre há um link para o código fonte:
2b. Leia todos os init.el
's
Muitas pessoas rastreiam seus init.el
arquivos no Git ou no Mercurial. Procure-os. Um truque é clicar no perfil das pessoas no StackOverflow, especialmente no emacs.stackexchange.com :
Eles geralmente têm links para seu GitHub ou site pessoal:
Repos chamados dotemacs
ou dotfiles
são bastante comuns. Com o tempo, você terá uma noção de como é um bom código e como ele é. Você também aprenderá os grandes nomes, como os de Xah , Sasha Chua , Binchen , Magnar Sveen , Abo - Abo e muitos mais. Há tantas pessoas para aprender!
Etapa 3: hackear o Emacs
Desafie-se a escrever a funcionalidade desejada. Nunca copie o código cegamente; sempre reserve um tempo para entendê-lo. Se você não entender, não use! Quando você dedica um tempo para entender um pedaço de código, além de aprender algo novo, geralmente pensa em maneiras de aprimorá-lo para seu caso de uso específico. Esta é uma oportunidade para hackear! Afinal, init.el
é para isso que serve! Cometer erros, quebrar coisas, aprender a depurar. Você verá que, como o Emacs está escrito em Elisp, o desenvolvimento é uma delícia.
Etapa 4: faça perguntas no emacs.stackexchange.com
Descobri que a comunidade Emacs no StackExchange adora uma boa pergunta sobre o Elisp. Portanto, corte com confiança que outras pessoas irão apreciar seus esforços para aprender.
Etapa 5: responda a perguntas no emacs.stackexchange.com
Nada esclarece sua compreensão como tentar explicar alguma coisa. Procurando na página principal, você também encontrará respostas para perguntas que você nunca soube que tinha.
Conclusão
Com o tempo, você poderá gerar soluções mais rapidamente e responder às perguntas de outras pessoas. Como toda a programação, pode ser frustrante. No entanto, lembre-se de se julgar hoje contra si mesmo ontem. Algumas pessoas estão hackeando o Emacs há, literalmente, 30 anos! Na maioria das vezes, porém, você verá que o Emacs é um prazer trabalhar e a liberdade que ele oferece é inspiradora.
Feliz hacking! :)
PS: Confira o pacote mal .
1 Algumas instalações não acompanham. Usuários do Debian, por exemplo, devem instalá-lo separadamente. É meio bobo , mas é armazenado em repositórios não gratuitos . Adicione um repositório não livre /etc/apt/sources.list
anexando non-free
ao final de cada entrada:
deb http://http.us.debian.org/debian stable main contrib non-free
Eu recomendo o "Emacs Lisp Intro".
O "Emacs Lisp Intro" pode já estar disponível em formato de informação no seu Emacs. Experimente
C-h i m Emacs Lisp Intro RET
ou avalie(info "(eintr) Top")
no Emacs.Se isso falhar, procure na Web por "Emacs Lisp Intro".
fonte
Comece com a página Wiki do Emacs Learn Emacs Lisp .
Não que essa página em si lhe ensine o Emacs Lisp. Em vez disso, ele apontará para recursos de aprendizado - exatamente o que você está procurando aqui , com sua pergunta. Muitos usuários contribuíram e o editaram ao longo de anos. Isso apresenta vantagens e desvantagens no blog de um usuário. A qualidade das sugestões é obviamente variada, devido à variedade de entradas.
Além disso - tudo o que outros aqui disseram, especialmente começando com o documento interno do Emacs:
O manual Elisp - principalmente uma referência, mas também algumas boas orientações de uso e informações conceituais. Está embutido no Emacs:
C-h i
depois escolha o manual Elisp.Introdução ao Emacs Lisp - introdução passo a passo ao Lisp e ao Emacs Lisp. Também embutido no Emacs e disponível em
C-h i
.Como você usou o Common Lisp, será super fácil pegar o Emacs Lisp. Considere-se com sorte com isso.
Se você tivesse usado o Common Lisp (ou Zeta Lisp ou o que for) em uma máquina Lisp, a experiência seria bem parecida. Você pode pensar no Emacs como (entre outras coisas), um ótimo ambiente Lisp. Você pode ir de zero a 60 em pouco tempo, ao aprender.
Diverta-se!
fonte
Como uma atualização do Lisp, recomendo os três primeiros capítulos dos Paradigmas de Peter Norvigs de Programação de Inteligência Artificial . Isso fornece uma (re) introdução ótima e rápida ao Lisp, que o levará de volta aos trilhos rapidamente.
Para os noobs totais, existe o COMMIS LISP: uma introdução suave à computação simbólica, que ensina os mesmos conceitos, mas em um ritmo muito mais baixo.
Ambos os livros estão disponíveis online, gratuitamente.
Depois de seguir uma das opções acima, você pode ler todas as postagens marcadas com Elisp no nullprogram.com e acessar o guia de leitura em masteringemacs.org . Para aprender sobre as armadilhas comuns, ler as principais perguntas aqui será de grande ajuda. Para problemas específicos, pesquise neste site, rosettacode ou no seu mecanismo de pesquisa favorito.
Depois de familiarizar-se com o básico, os manuais de informações geralmente respondem à maioria das perguntas restantes que surgem ao invadir o Emacs.
fonte
Como você tem experiência em Common Lisp e está "além do básico", não faz sentido se perder na "Introdução à programação no Emacs Lisp".
O que você pode fazer imediatamente (não tenho experiência em CL e funcionou para mim) é:
1) encontre um modo que você use e tente adicionar funções, você encontrará ajuda no Emacs Lisp Reference
2) escreva seu próprio arquivo personalizado com suas próprias funções simples; aqui, novamente, use o Emacs Lisp Reference
A lista help-gnu-emacs é extremamente útil.
fonte
Realmente não acho que você precise ler algo específico no emacs lisp. Não é segredo que, se você quiser fazer algo no Emacs, é provável que você tenha que encontrar o comando certo ou alguém já tenha escrito o código e ele agora reside em algum lugar da página da wiki, ou github, ou foi transformado em um plugin . Apenas copiando e colando esse código e lendo-o , você terá aprendido uma boa parte do Emacs lisp quando estiver satisfeito com o seu .emacs.
Se você deseja obter algumas idéias sobre como personalizar o Emacs, configurações personalizadas de outras pessoas podem ser uma boa fonte de sabedoria. Uma lista selecionada de tais configurações você pode encontrar aqui . Embora, realmente, ter sua própria visão funcione melhor e visitar o .emacs de outras pessoas geralmente seja garantido apenas quando você deseja que algumas perguntas sejam respondidas [por exemplo, como estruturo meu código / pacotes?] Ou algum código copiado para algum objetivo específico seu.
Navegar no MELPA me levou a instalar e experimentar talvez uma dúzia de pacotes.
Se você estiver desenvolvendo um plug-in, descobri que a leitura do código de algum plug-in específico do seu gosto pode ajudá-lo a começar rapidamente.
Desde que você usa o vi, confira o modo maligno , ele funcionou muito bem para mim. Eu também recomendaria o leme com
helm-apropos
(ou apenasapropos
se você não quiserhelm
) o comando para facilitar sua jornada.Portanto, meu conselho é chegar ao ponto de personalização imediatamente e você aprenderá tudo o que precisa em movimento. Especialmente porque você hackou o lisp antes, há muito tempo ou não, e porque aprender elisp é, até onde eu sei, um meio para um fim para você, que é personalizar o emacs.
fonte
A faixa da Elisp no exercism.io também é uma maneira divertida de melhorar suas habilidades. Os exercícios são mais focados no elisp do que no Emacs, mas abrangem uma boa variedade de conceitos básicos, como expressões regulares, estruturas de dados, matemática, etc.
fonte
Parece-me que a resposta de Loren Ipsum o cobre muito bem.
https://emacs.stackexchange.com/a/47320/21433
Eu simplesmente acrescentaria que estou assumindo que você conhece o básico do Lisp. Isso o ajudaria, mas não é necessário (voltarei a isso.)
Uma maneira de aprender é simplesmente hackear ou modificar um modo / extensão existente. Eu aprendi isso em 93 cortando o arquivo no modo de linguagem Ada. Foi uma das experiências mais divertidas que tive na faculdade.
Assim, você pode fazer isso com uma linguagem de sua escolha, digamos, um modo Java, ou um modo Lisp, ou mesmo um arquivo no modo Elisp.
Altere, adicione macros, etc. Foi assim que eu fiz.
fonte