Está gostando da leitura?
Está aprendendo?
Compre o livro novo que traz mais conteúdo, texto atualizado e ilustrações!
O vim herdou a base das expressões do vi e estendeu muito seu
poder, criando metacaracteres novos e permitindo o uso de ERs na
maioria de seus comandos, como endereçamento. Tudo o que você precisa
saber sobre ERs no vim está documentado no próprio programa, bastando
digitar :help regexp para ter acesso a essas
informações.
A primeira dica é ligar duas opções imbatíveis que são a
hlsearch e incsearch. A primeira deixa iluminado
("highlight") o texto casado, para termos uma visualização do que
nossa ER casou, e a segunda faz o vim ir iluminando e mostrando o texto
casado dinamicamente, enquanto você digita a ER! Experimente, é muito
bom: :set hls is.
Além destas, temos opções que modificam a sintaxe dos
metacaracteres, são elas: magic e nomagic. A
primeira é a opção-padrão, e é a que se aconselha usar, não mude.
Ao usar a segunda, suas ERs serão tão cheias de escapes que serão
imprestáveis em outros programas.
A função de pesquisa é feita pelo comando / e o
? e a de substituição pelo :s///. O detalhe é que
a substituição vale apenas para a linha atual onde está o cursor, a
não ser que você selecione o texto desejado, ou aplique um
endereçamento que dirá ao comando s em quais linhas
fazer a substituição.
Esse endereçamento vem imediatamente após o : e pode
ser números de linha, padrões de texto entre barras, e alguns
caracteres representantes de: linha atual (.), última linha ($) e
arquivo todo (%).Veja alguns exemplos:
:s/a/b/g troca todos os a por b na linha atual :1,5s/^/#/ comenta as 5 primeiras linhas :.,$s/^/#/ comenta até o final do arquivo :%s/^.// apaga a primeira letra de cada linha :%s/^./\u&/c torna maiúsculo o 1° caractere
Esse último é utilíssimo. Colocando um c no final de
qualquer substituição, o vim mostrará um "prompt" na tela e lhe
pedirá uma confirmação antes de fazer qualquer uma das
substituições. Você vai respondendo sim ou não e vai vendo o texto
ser alterado. Evita substituições cegas e vicia, cuidado! Veja
:help :s_flags para conhecer outros modificadores.
No vim apenas as chaves têm similares não-gulosos. Mas como já vimos que com elas conseguimos emular todos os outros quantificadores, isso não é problema. A sintaxe é simplesmente adicionar um traço como primeiro caractere dentro delas.
meta mnemônico
------------------------------------------
\{-,1} opcional não-guloso
\{-} asterisco não-guloso
\{-1,} mais não-guloso
\{-n,m} chaves não-gulosas
Ele possui também diversos arquivos de sintaxe para vários tipos de arquivo, que é onde são guardadas as regras complicadas que dizem "o quê é válido onde", e fazem os arquivos ficarem coloridos, respeitando a sintaxe da linguagem de programação ou arquivo de registros ou configuração sendo editados.
Adivinha como são feitas essas regras complicadas? Com ERs, é
claro! Este é um tópico muito interessante e exige conhecimentos
sólidos do assunto. Caso queira dar uma olhada, todos os arquivos de
sintaxe estão no subdiretório syntax e têm a extensão
.vim.
A central vim encontra-se em http://www.vim.org.