Merge branch 'master' of ssh://git.snopyta.org:2222/aabm/emacs-humanities into master

This commit is contained in:
aabm 2020-08-27 15:02:57 -03:00
commit 7858cc6f10
1 changed files with 19 additions and 182 deletions

View File

@ -8,21 +8,15 @@ O Emacs Humanities é uma configuração do GNU Emacs feita para a produção de
Esta configuração é destinada a iniciantes e leigos no uso do Emacs. Os arquivos de configuração são bem documentados, com comentários e indicações de uso para cada bloco de código. Isso não impede, no entanto, que usuários experientes utilizem esta configuração como base para as suas próprias. O Emacs Humanities tem uma base simples, que encoraja modificações pelos usuários.
Aqui incluo, até este momento, apenas configuração para uso do org-mode e org-roam, duas ótimas (se não as melhores existentes) ferramentas para anotações e organização de mapas mentais. Demonstrações podem ser encontradas abaixo
Aqui incluo, até este momento, apenas configuração para uso do org-mode e org-roam, duas ótimas (se não as melhores existentes) ferramentas para anotações e organização de mapas mentais. Demonstrações podem ser encontradas na [[https://git.snopyta.org/aabm/emacs-humanities/wiki][wiki]].
O objetivo a longo prazo é incluir uma suíte completa de configurações, com suporte para a editoração em LaTeX por meio dos pacotes AucTeX e latex-mode, e até análise de dados estatísticos em R, Python, Julia e outros por meio do pacote ESS (Emacs Speaks Statistics).
O objetivo a longo prazo é incluir uma suíte completa de configurações, com suporte para a editoração em LaTeX por meio dos pacotes AucTeX e latex-mode, e até processamento de dados estatísticos em R, Python, Julia e outros por meio do pacote ESS (Emacs Speaks Statistics).
* Instalação rápida
** Instalação automática pelo git (recomendada)
Execute o comando a seguir, depois inicie o Emacs. Os pacotes da configuração serão instalados automaticamente. O comando requer o =git= instalado no sistema.
Esta configuração pode ser encontrada em dois repositórios. O [[https://git.snopyta.org/aabm/emacs-humanities][repositório oficial]], e o [[https://gitlab.com/aabm/emacs-humanities][mirror no gitlab]]. O repositório oficial possui uma wiki detalhando o processo de instalação, e muito mais.
#+begin_src shell
git clone https://git.snopyta.org/aabm/emacs-humanities ~/.emacs.d
#+end_src
* Instalação
** Instalação manual sem git
Para instalar sem o =git=, baixe o .zip ou .tar.gz do repositório e extraia tudo para o diretório =~/.emacs.d=, depois inicie o Emacs. Os pacotes da configuração serão instalados automaticamente.
A wiki do Emacs Humanities tem um guia completo de instalação, tanto do Emacs quanto desta configuração. O guia cobre diversos sistemas operacionais, e pode ser encontrado [[https://git.snopyta.org/aabm/emacs-humanities/wiki/Instala%C3%A7%C3%A3o-do-Emacs-Humanities][aqui]]. Não se intimide, o processo de instalação completo é bem simples e dura no máximo alguns minutos.
* Por onde começar
@ -32,176 +26,19 @@ O Emacs já vem com um tutorial em si, que contém informações básicas sobre
Outra coisa a mencionar: esse documento pode parecer longo e complexo, mas não se intimide; Não há porque ler esse manual todo de uma vez. Leia-o aos poucos, conforme precisar de alguma informação.
* Guia de referência rápida do Emacs
* TODO Coisas a fazer
*** TODO Escolher um tema de cores mais razoável.
*** TODO Adicionar melhor suporte para escrita de LaTeX pelo AucTeX
Essa seção serve como guia de referência rápida para conceitos, teclas de atalho, etc, relacionados ao Emacs. Não é um substituto para o tutorial ou a prática de uso, mas pode servir para tirar quaisquer dúvidas que surgirem.
Atualmente o Emacs Humanities não possui configuração específica para
a produção de documentos LaTeX diretamente. Por enquanto recomendo que
façam tais documentos pelo org-mode com inserção de blocos LaTeX.
É perfeitamente possível escrever LaTeX na configuração atual; só não há
nenhum aprimoramento em relação à experiência padrão. De qualquer maneira,
o Emacs é completamente extensível e programável, e esta configuração é
software livre: você tem a liberdade e a possibilidade de modificá-la
como quiser e adicionar o que quiser.
** Buffers, frames, janelas. O que é tudo isso?
** Notação das teclas de atalho
Lendo este manual, você já deve ter percebido a forma incomum de se denotar teclas de atalho. Esta notação é usada em toda a documentação do Emacs, e é explicada no tutorial. A forma é simples, fácil de ler, e curta para se escrever, mas não é utilizada por outros programas, então pode ser confusa para iniciantes. Segue aqui uma explicação rápida:
- Teclas modificadoras (Control, Alt, Shift, Super, Hyper) são indicadas por apenas uma letra
- Control é indicada por C, Alt por M, Shift por S, Windows por s, e Hyper por H.
- Alt é chamada de Meta e a tecla Windows de Super. A tecla Hyper não está presente na maioria dos teclados atuais.
- Teclas a serem pressionadas juntas são conectadas por hífen
- Portanto C-x denota Control+x, e M-x denota Meta+x ou Alt+x
- Teclas a serem pressionadas em seguida são separadas por espaço
- Portanto C-x 0 denota Control+x, depois 0, e C-x C-c indica Control+x, depois Control+c.
- A maior parte das teclas usa prefixos comuns
- C-x C-c são os prefixos mais utilizados. Com eles começa a maior parte das combinações de atalho.
** Teclas de atalho úteis
Sabendo a notação das teclas de atalho, é fácil aprender novas combinações. Aqui incluímos uma breve lista de teclas úteis e frequentemente utilizadas. Pode ser útil manter este arquivo aberto, como referência rápida das teclas de atalho.
Não incluímos as teclas de navegação textual descritas no tutorial, pois podem ser substituídas por iniciantes pelas setas do teclado e pelo uso do mouse, com o intuito de minimizar a curva de aprendizagem inicial. Dito isso, é altamente recomendado que você aprenda sim as teclas de navegação, que são muito mais eficientes do que navegar usando o mouse ou as setas do teclado.
- Teclas de uso geral:
- C-g para cancelar a ação atual. Útil para aquelas vezes em que você aperta ou faz algo de errado. Lembre-se: se algo de inesperado acontecer, pressione C-g.
- C-x C-f para find-file, que é, procurar e abrir o arquivo desejado.
- C-x C-s para salvar o buffer (arquivo) atual.
- C-x C-c para sair do Emacs.
- M-x para o menu interativo de funções, de onde você pode chamar qualquer função do programa
- Teclas para manipular buffers:
- C-x b para mudar de buffer (buffers são similares ao conceito de arquivos, e são descritos em mais detalhes no tutorial)
- C-x k para deletar o buffer atual
- Teclas para manipular janelas:
- C-x o para focar para a pŕoxima janela
- C-x 0 para deletar a janela atual
- C-x 1 para deletar todas as /outras/ janelas exceto a atual
- E finalmente, as teclas para acessar ajuda, documentação, e o tutorial. A auto-documentação é explicada em mais detalhes em seguida;
- C-h k para descrever a função realizada por alguma tecla
- C-h t para acessar o tutorial
- C-h m para descrever o modo atual e suas teclas de atalho (org-mode, por exemplo)
- C-h f e C-h v para descrever funções e variáveis, respectivamente.
Experimente apertar alguma tecla de prefixo, como C-x, e sem apertar mais nada, esperar por um momento. O menu do which-key aparecerá, indicando todas as teclas de atalho disponíveis a partir da sua tecla de prefixo. Uma maneira intuitiva de explorar os comandos existentes. O which-key funciona para qualquer prefixo ou combinação de teclas, a qualquer momento. Não tenha medo de utilizá-lo.
** Acessando a documentação interna do Emacs
O Emacs possui um sistema único de auto-documentação, não encontrado em nenhum outro editor. Algumas funções são capazes de analisar e descrever informações sobre outras funções, variáveis, pacotes, e muito mais, essecialmente gerando documentação, instruções e ajuda para o usuário automaticamente. Isso torna o processo de aprendizagem e exploração das funcionalidades do editor muito mais orgânico; o usuário não precisa ler o manual de instruções inteiro para aprender sobre o editor. Basta apenas acessar a documentação para cada ponto individual que precisar.
As teclas de atalho da auto-documentação podem ser acessadas pelo prefixo C-h, como descrito na seção de teclas de atalho acima.
* Anotações com org-mode
O org-mode é uma extensão muito popular para o Emacs. É o principal motivo
pelo qual muitas pessoas não ligadas à programação ou computação fazem uso
frequente do Emacs, tanto para fins pessoas quanto fins acadêmicos.
Em termos simples, o org-mode é uma linguagem de marcação, editoração, ou
markup, feita para organização pessoal. Ele possibilita a criação de
listas de afazeres, entradas de agenda, e outras formas de anotação pessoal,
mas também permite a exportação destas anotações para documentos completos,
usando uma conversão pelo LaTeX. Isto torna o org-mode uma ferramenta de
alta utilidade: tem a simplicidade de uma linguagem básica como Markdown,
mas todas as capacidades de uma linguagem completa como LaTeX.
O org-mode suporta exportação para vários formatos além de LaTeX, incluindo
Markdown e HTML, e pode ser usado até para criação de páginas da web.
Esta documentação está escrita em org, e assim recebe a formatação adequada
na página do git do Emacs Humanities.
** Guia rápido de org-mode
*** Formato simples
Arquivos do org-mode usam a extensão .org. A extensão é utilizada apenas para indicar a uso da linguagem na escrita do arquivo; o formato em si é texto simples, como arquivos .txt, e podem ser acessados por qualquer outro editor.
*** Sintaxe simples
Muitos dizem que o org-mode é inspirado pelo Markdown, outra linguagem de marcação comum, devido à similaridade das sintaxes de ambos. O org-mode é, na verdade, mais antigo que o Markdown, e possui uma sintaxe que é, em geral, mais simples, consistente e padronizada, e ao mesmo tempo mais abrangente e capaz.
*** Exemplo de org-mode
Vale notar que quaisquer vírgulas no início das linhas não são presentes no org normal. Estão aqui só para que o texto não seja formatado pela página.
#+begin_src org
,* Títulos (chamados headings) se denotam com um asterisco.
,** Dois asteriscos indicam um subtítulo (subheading).
,*** Três asteriscos indicam um subsubtítulo.
,*** e assim vai...
,**** Existem níveis infinitos de subsubsubsubs...títulos.
Títulos podem conter texto dentro de si.
,** Texto!
Para inserir texto, basta apenas... inserir texto. Nada de tags de <p> ou qualquer coisa.
Para separar dois blocos de texto em parágrafos, apenas inclua uma linha vazia entre os dois.
Podemos também fazer algumas formatações básicas, como *negrito*, /itálico/, =realçado=, etc.
- Fazer listas também é fácil, basta usar um hífen seguido por um espaço logo ao início da linha, antes do texto
- Outro item de exemplo
- Listas também suportam sub-itens, que são indicados por um espaço antes do hífen do início
- outro subitem
- [ ] As listas também podem ser /checklists/, se possuírem colchetes separados por um espaço no início
- [-] As checklists são interativas. Elas se relacionam com seus subitens.
- [X] Subitem completo. Este é marcado por um X entre os colchetes. Para facilitar, não é necessário inserir o X manualmente. Há uma tecla de atalho para isso, C-c C-c, que torna a ação mais rápida.
- [ ] Subitem incompleto. Este marca o item acima com o sinal de compleção parcial, o hífen.
1. Pode-se fazer listas numeradas também, usando um número e um ponto.
2. Outro item numerado
1) Há outro formato para listas numeradas também, usando um parêntese.
2) Listas numeradas não suportam
#+end_src
Abaixo está o mesmo texto em org do bloco acima, porém exibido corretamente:
*** Títulos (chamados headings) se denotam com um asterisco.
**** Dois asteriscos indicam um subtítulo (subheading).
***** Três asteriscos indicam um subsubtítulo.
***** e assim vai...
****** Existem níveis infinitos de subsubsubsubs...títulos.
Títulos podem conter texto dentro de si.
***** Texto!
Para inserir texto, basta apenas... inserir texto. Nada de tags de <p> ou qualquer coisa.
Para separar dois blocos de texto em parágrafos, apenas inclua uma linha vazia entre os dois.
Podemos também fazer algumas formatações básicas, como *negrito*, /itálico/, =realçado=, etc.
- Fazer listas também é fácil, basta usar um hífen seguido por um espaço logo ao início da linha, antes do texto
- Outro item de exemplo
- Listas também suportam sub-itens, que são indicados por um espaço antes do hífen do início
- outro subitem
- [ ] As listas também podem ser /checklists/, se possuírem colchetes separados por um espaço no início
- [-] As checklists são interativas. Elas se relacionam com seus subitens.
- [X] Subitem completo. Este é marcado por um X entre os colchetes. Para facilitar, não é necessário inserir o X manualmente. Há uma tecla de atalho para isso, C-c C-c, que torna a ação mais rápida.
- [ ] Subitem incompleto. Este marca o item acima com o sinal de compleção parcial, o hífen.
1. Pode-se fazer listas numeradas também, usando um número e um ponto.
2. Outro item numerado
1) Há outro formato para listas numeradas também, usando um parêntese.
2) Listas numeradas não suportam
** Mapas mentais com org-roam
O org-roam é uma extensão do org-mode centrada na interligação de arquivos
relacionados, inspirada pelo Roam Research e pelo método Zettelkasten.
A ideia é permitir ao usuário criar um verdadeiro cérebro externo, com toda
a riqueza de informação de seu cérebro real.
Com o org-roam-server, é possível navegar os arquivos do org-roam por um
gráfico renderizado em tempo real, exibido no seu navegador de internet,
e conectado ao org-roam pelo org-roam-protocol.
Um gif demonstrando o uso do org-roam-server para navegação de arquivos
interligados:
[[file:docs/org-roam-server.gif]]
*** TODO Adicionar suporte para pacotes de Estatística, mais especificamente o ESS
- O ESS pode ser usado para programação em R, Julia e outras linguagens
- Código em R pode ser incluído em documentos org e exportado para PDFs pela compilação de LaTeX