O Emacs é provavelmente o editor de textos mais poderoso que existe. Ele pode fazer quase tudo e é infinitamente extensível através da linguagem de programação baseada em lisp que ele possui embutida. Com o Emacs, você pode navegar na internet, ler o seu e-mail, participar de grupos de notícias Usenet, fazer café, e muito mais. Isto não significa que você irá aprender como fazer tudo isto neste capítlo, mas já vai ser um bom começo abrir o Emacs, editar um ou mais arquivos, salvá-los e então sair do editor.
Se, depois de ler este capítulo você quiser aprender mais sobre o Emacs, você pode dar uma olhada no Tutorial de Introdução ao Emacs.
Você pode executar o Emacs da seguinte maneira na linha de comando:
emacs [arquivo1] [arquivo2...]
O Emacs irá
abrir cada arquivo indicado como argumento em um buffer
separado. Se mais de dois arquivos forem indcados na linha de
comando, a janela será automaticamente dividida em duas e, uma
parte dela mostrará o último arquivo especificado, enquanto a
outra parte mostrará uma lista dos buffers disponíveis com os
outros aquivos. Se você executar o Emacs sem especificar
nenhum arquivo na linha de comando, você será posicionado em um
buffer chamado *scratch*
. Quando o Emacs for executado no
X, menus estarão disponíveis e poderão ser acessados com
o mouse, já no modo texto, você pode acessar os
menus com a tecla F10. Neste capítulo nós
vamos nos concentrar em trabalhar com o teclado e sem qualquer menu.
Agora é hora de experimentarmos na prática. Para o nosso exemplo vamos
começar abrindo dois arquivos, arquivo1
e
arquivo2
. Se estes arquivos não existem,
eles serão criados assim que você escrever alguma coisa neles:
$ emacs arquivo1 arquivo2
Digitando este comando, a seguinte janela será aberta:
Como você pode ver, dois buffers foram criados. Um terceiro é apresentado na parte de baixo da tela (onde está escrito (New file)
). Esse é o mini-buffer. Este buffer não pode ser acessado diretamente, porém você será “convidado” pelo Emacs a escrever nele durante operações interativas. Para alterar o buffer atual, tecle Ctrl-X-O. Você digita textos da mesma forma que em um editor “normal”, apagando caracteres com a tecla Del ou Backspace.
Para se movimentar dentro do texto, você pode utilizar as setinhas, ou então alguma das seguintes combinações: Ctrl-A para ir ao início da linha, Ctrl-E para ir ao fim da linha, Alt-< ou Ctrl-Home para ir ao início do buffer e Alt-> ou Ctrl-End para ir ao fim do buffer. Há várias outras combinações, até mesmo uma para cada setinha[19].
Quando você estiver pronto para salvar as alterações em disco, digite Ctrl-X Ctrl-S, ou se você quiser salvar o conteúdo do buffer em outro arquivo, digite Ctrl-X Ctrl-W. O Emacs irá pedir que você informe o nome do arquivo onde o conteúdo deve ser salvo. Você pode utilizar completação para facilitar, pressionando a tecla Tab da mesma maneira que no bash.
Se você quiser, pode alternar para um modo em que apenas um buffer é exibido. Há duas maneiras de fazer isto:
Há duas maneiras de exibir uma buffer novamente na tela:
digite Ctrl-X B e entre com o nome do buffer que você deseja, ou
digite
Ctrl-X
Ctrl-B. Isto irá abrir um novo buffer
chamado *Buffer List*
. Você pode navegar
neste buffer utilizando a seqüência Ctrl-X
O, e então selecionar o buffer que você
deseja e pressionar a tecla Enter, ou
então digitar o nome do buffer no mini-buffer. O buffer
*Buffer List*
volta ao segundo plano
assim que você tiver feito a sua escolha.
Se você já
terminou um arquivo e quer se livrar do bufer associado a ele,
digite
Ctrl-X
K. O Emacs então irá te perguntar qual
buffer ele deve fechar. Por padrão, este será o buffer que você
está localizado atualmente. Se você quer se livrar de um buffer
diferente daquele sugerido, entre com o nome do buffer diretamente
ou pressione Tab: O Emacs irá abrir
ainda outro buffer chamado *Completions*
dando a lista das escolhas possíveis. Confirme a escolha com a
tecla Enter.
Você também pode recuperar dois buffers visíveis na tela a qualquer momento. Para fazer isto, digite Ctrl-X 2. Por padrão, o novo buffer criado será uma cópia do buffer atual (que possibilita, por exemplo, editar várias partes de um arquivo grande em diversos lugares “ao mesmo tempo”). Para mover entre os buffers, utilize os comandos previamente mencionados.
Você pode abrir outros arquivos a qualquer momento, utilizando Ctrl-X Ctrl-F. O Emacs irá perguntar pelo nome do arquivo e você pode novamente utilizar a completação se você achar mais conveniente.
Suponha que você se encontre na seguinte situação: Figura 8.2, “Emacs, antes de copiar o bloco de texto”.
Antes de mais
nada, você precisará selecionar o texto que você quer
copiar. Neste exemplo nós queremos copiar a sentença toda. O
primeiro passo é colocar uma marca no início da área. Assumindo
que o cursor está na posição mostrada na Figura 8.2, “Emacs, antes de copiar o
bloco de texto”, a seqüência de comando seria Ctrl-Space
(Control + Barra de espaço). O Emacs irá
mostrar a mensagem Mark set
no mini-buffer. A
seguir, mova para o início da linha com
Ctrl-A. A
área selecionada para copiar ou cortar é toda a área localizada
entre a marca e a posição atual do cursor, então neste caso será
toda a linha do texto. Há duas seqüências de comandos disponiveis:
Alt-W
(para copiar) ou
Ctrl-W
(para cortar). Se você copiar, o Emacs irá retornar
rapidamente para a posição da marca, e assim você pode ver a
área selecionada.
Finalmente, vá para o buffer onde você quer colocar o texto e tecle Ctrl-Y. Isto irá retornar o seguinte resultado:
Na verdade, o que você fez foi copiar texto para o kill ring do Emacs. Este kill ring contém todas as as áreas copiadas ou recortadas desde que o Emacs iniciou. Qualquer área recém-copiada ou recortada é colocada no topo do kill ring. A sequência Ctrl-Y somente “cola” a área que estiver no topo. Se você quiser acessar qualquer uma das outras áreas, pressione Ctrl-Y e então Alt-Y até que você consiga o texto desejado.
Para procurar por um texto, vá para o bufer desejado e digite Ctrl-S. O Emacs irá solicitar a você a string pela qual deseja buscar. Para continuar com uma busca pela mesma string no buffer atual, pressione Ctrl-S novamente. Quando o Emacs atingir o final do buffer e não encontrar mais ocorrêcias, você pode digitar Ctrl-S novamente para reiniciar a busca do início do buffer. Pressionando Enter a busca será encerrada.
Para procurar e substituir, digite Alt-%. O Emacs irá pedir que você informe a string de procura, o que deve substituir esta string, e pedir uma confirmação para cada ocorrência que encontrar.
Digitar Ctrl-X U ou Ctrl-Shift-- irá desfazer a última modificação que você fez no arquivo. Você pode desfazer quantas operações quiser.
A tecla de atalho para sair do Emacs é Ctrl-X Ctrl-C. Se você não salvou as alterações, o Emacs irá lheperguntar se você quer ou não salvar o conteúdo dos buffers.
[19] O Emacs foi desenvolvido para trabalhar em uma variedade grande de máquinas, algumas das quais não possuem as teclas de setas no teclado. Isto se aplica ainda mais ao Vi.