Está gostando da leitura?
Está aprendendo?
Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!
Chamar o emacs de editor de texto é ser superficial, pois editar texto parece ser a coisa menos interessante para fazer neste programa que também lê e-mails, acessa a Internet, faz ftp, entre outros. Mas como nosso interesse aqui é ERs, é isso o que veremos. Contrastando-as com a abundância de funcionalidades, as ERs no emacs são diferentes em alguns aspectos e não têm as chaves!
As ERs são tratadas como strings, então valem as dicas já vistas para lidar com isso. Para complicar, ele usa a notação antiga, em que a maioria dos metacaracteres deve ser escapada para serem especiais.
Então juntando esses dois fatos, precisamos fazer
\\[\\(.*\\)\\] para agrupar o conteúdo de um par de
colchetes, o que normalmente seria \[(.*)\].
Há vários comandos que trabalham com ERs, sendo
re-search-forward e re-search-backward os comandos
de busca nas linhas adiante e anteriores, respectivamente. Mas melhores
do que estes são os comandos similares que procuram enquanto você
digita, já sabendo se sua ER está funcionando ou não antes de
finalizá-la: isearch-forward-regexp e
isearch-backward-regexp.
Como um editor de texto serve para alterar texto, temos o comando
replace-regexp que se encarrega de fazer a substituição de
padrões:
M-x replace-regexp <enter> \(Gentalha!\) <enter> \& \1 Prrrr! <enter>
Com essa seqüência agrupamos a palavra gentalha! e com o
especial \& que referencia todo o trecho casado e o
retrovisor um, que neste caso têm mesmo conteúdo, obtemos a frase
clássica que o Seu Madruga ouve após apanhar: "Gentalha!
Gentalha! Prrrr!".
O que é realmente diferente de tudo no emacs são suas "classes de
sintaxe", que são seus similares para as classes POSIX e um algo mais.
A sintaxe para acessar essas classes é \s<identificador>
, em que o identificador pode ser:
ident. nome casa um caractere que... -------------------------------------------------- / charquote escapa o próximo caractere \ escape inicia um escape tipo C ( open abre um bloco ) close fecha de um bloco < comment inicia um comentário > endcomment termina um comentário , quote marca um texto normal " string delimita uma string - whitespace é branco . punct é pontuação w word é parte de uma palavra _ symbol não é parte de palavra
O detalhe é que você mesmo pode alterar o conteúdo dessas classes
antes de utilizá-las, dependendo de suas necessidades. O comando
describe-syntax mostra os valores atuais dessas classes, para
conferência.
E como era de se esperar \S (com S maiúsculo)
casa exatamente o oposto, sendo \S- qualquer coisa
fora brancos, e assim vai...
Ops, quase me esqueci do mais importante: é GNU emacs...