Introduzindo conceitos do Emacs

Utilizo o Emacs há algum tempo, pelo menos como ferramenta de desenvolvimento acho uma das melhores opções, onde, diferente de outras, é fácil fazer o desenvolvimento e estender suas funcionalidades, criar novas hotkeys. Tentarei demonstrar aqui, um básico das funcionalidades do Emacs.

O primeiro passo, para aprender Emacs é entender um pouco das notações das teclas de atalho para entender tutorias, livros de referência:

C: Control

M: Alt (Meta)

C-b: Control + b (volta uma palavra dentro de um buffer)

M-g g: Alt + g, seguido da tecla g (go-to-line)

C-h r: Control + h, seguido da tecla r (abre o manual do emacs)

C-x C-c: Control + x, seguido de Control + c (fecha o emacs)

É importante perceber que existe uma diferença entre M-g

Uma tecla muito importante caso você se perca ao utilizar o Emacs é o f10, a tecla f10 vai para o menu visual do Emacs o qual você pode navegar nas funções básicas dele. Outra tecla importante é a tecla de fuga… digamos que você está digitando alguma hotkey ou comando e não sabe o que ocorreu ou quer desistir, você pode pressionar Esc três vezes ou apertar C-g (signal quit).

menuf10

No entanto, um dos pontos mais importantes ao lidar com uma IDE é saber desenvolver a evoluir com a sua ferramenta de desenvolvimento, neste quesito é importante como conseguir ajuda nela, e entender seus comandos para poder criar suas próprias teclas de atalho, ou mesmo “scriptar” sequências de comandos.

Então “go to help”

C-h r: abre o manual do emacs

C-h t: abre o tutorial do emacs

C-h i: abre a lista de manuais do emacs

Você vai perceber que é natural navegar nos manuais, pois todos possuem hiperlinks para outras páginas onde você consegue navegar com as flechas e pressionar Enter, onde leva a outros textos. Uma maneira prática para navegar entre os links é ir pressionando Tab, que ele vai avançando entre os links.

As vezes nem percebemos, mas estamos usando algumas das hotkeys do Emacs no BASH, visto que as hotkeys deles são idênticas ou similares. Exemplo

C-a: vai para o início da linha

C-e: vai para o final de linha

M-f: avança uma palavra

M-b: volta uma palavra

C-r: faz busca reversa nos comandos (no emacs faz busca de palavras reversa)

C-k: copia a linha

C-y: cola a linha copiada

Gente O_O todos estes comandos funcionam no BASH, não somente dentro do programa Emacs, mas já que podem usar no Emacs porque não estender e dar um passeio neste programa e ver algumas das coisas divertidas dele como buffers :). Primeiro de tudo, no Emacs, cada janela é vinculada a um buffer. O buffer como podemos dizer uma região de memória associada a um conjunto de texto dentro do emacs se fosse uma maneira simples por assim dizer o que ele seria, várias janelas podem estar vinculadas a um mesmo buffer o_o .. buffers o melhor é testar.

Sugestão XD, abra o Emacs sem modo gráfico geralmente conhecido nas distribuições como Emacs-nox. Primeiro de tudo, importante listarmos os buffers do sistema para isto você pode pressionar a tecla de atalho:

C-x C-b: lista todos os buffers no *Buffer list* em uma nova janela

C-x b: chama a linha de comando para completarmos com o buffer que queremos selecionar. A tecla Tab funciona aqui para completar com os outros buffers disponíveis.

C-x esquerda: vai para o buffer anterior

C-x direita: vai para o próximo buffer

C-x k: mata o buffer

Ao listar todos os buffers, podemos navegar com as setas do teclado e escolher o buffer que vamos usar.

No entanto qual a graça de brincar com os buffers se não usar o splits de janelas e trabalhar com múltiplos buffers :). Então vamos aprender um pouco sobre como quebrar as janelas para multi visões.

C-x 3 – quebra a tela na vertical

C-x 4 – quebra na horizontal

C-x 0 – deleta a janela atual

C-x 1 – deleta todas as janelas menos a atual

buffer-window

 

Como uma introdução sobre o assunto acho que ficou longo até, mas espero conseguir auxiliar os iniciantes sobre esta ferramenta a dar os primeiros passos, na sequência a intenção é postar novos dicas, sobre o uso do Emacs.

Referências:

Using Multiple Buffers