emacs-humanities/README.org

12 KiB

Emacs Humanities

Sobre

O Emacs Humanities é uma configuração do GNU Emacs feita para a produção de documentos acadêmicos das Ciências Humanas. O objetivo é providenciar uma configuração acessível de ferramentas facilitadoras do trabalho de pesquisa, desde os processos de fichamento, anotação, e síntese de textos, passando pela organização de informação de pesquisa até a editoração de publicações acadêmicas finais.

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

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).

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 as 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.

  * 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

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.

    • 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
  3. Há outro formato para listas numeradas também, usando um parêntese.
  4. 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:

/aabm/emacs-humanities/media/commit/99bdf85270abe94beb8cce47afc55097594ae1ce/docs/org-roam-server.gif

Para

Por onde começar

O Emacs já vem com um tutorial em si, que contém informações básicas sobre conceitos, teclas de atalho e outras dicas de uso do editor. O tutorial pode ser acessado pressionando C-h t (isto é, as teclas Control+h, seguidas pela tecla t) ou chamando a função help-with-tutorial pelo menu de execução de funções, acessado pelas teclas M-x (isto é, Alt+x).

É recomendado que você faça o tutorial antes de ler o resto dessa documentação. A maior parte do conteúdo daqui é explicada em mais detalhes no tutorial. Esta documentação apenas sintetiza os conceitos do tutorial em uma referência rápida.

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.

Notação das teclas de atalho

Lendo o parágrafo acima, 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.