Ir para o conteúdo

Exemplos

Busca usando alternativas:

/end\(if\|while\|for\)
Buscará ‘endif’, ‘endwhile’ e ‘endfor’. Observe que é necessário ‘escapar’ os caracteres \(, \| e \), caso contrário eles serão interpretados como caracteres comuns.

Quebra de linha

/quebra\nde linha
Ignorando maiúsculas e minúsculas
/\cpalavra
Usando \c o Vim encontrará “palavra”, “Palavra” ou até mesmo “PALAVRA”. Uma dica é colocar no seu arquivo de configuração “vimrc” veja o capítulo Como editar preferências no Vim.

Opção Descrição
set ignorecase ignora maiúsculas e minúsculas na busca
set smartcase se busca contiver maiúsculas ele passa a considerá-las
set hlsearch mostra o que está sendo buscado em cores
set incsearch ativa a busca incremental

se você não sabe ainda como colocar estas preferências no arquivo de configuração pode ativá-las em modo de comando precedendo-as com dois pontos, assim:

:set ignorecase<Enter>
Substituições com confirmação, em que o c no final habilita a confirmação:
:%s/word/palavra/c
Procurando palavras repetidas
/\<\(\w*\) \1\>
Multilinha
/Hello\_s\+World
Buscará ‘Hello’ seguido de ‘World’, separados por qualquer número de espaços, incluindo quebras de linha. Buscará as três sequências:
Hello World

Hello    World

Hello
World
Buscar linhas de até 30 caracteres de comprimento
/^.\{,30\}$

Comando Descrição
^ representa começo de linha
. representa qualquer caractere
\{,30\} no máximo 30 vezes
$ representa fim de linha

Outras substituições úteis:

Comando Descrição
:%s/<[^>]*>//g apaga tags HTML/XML
:%g/^$/d apaga linhas vazias
:%s/^[\ \t]*\n//g apaga linhas vazias

Remover duas ou mais linhas vazias entre parágrafos diminuindo para uma só linha vazia.

:%s/\(^\n\{2,}\)/\r/g
Você pode criar um mapeamento e colocar no seu ~/.vimrc
map ,s <Esc>:%s/\(^\n\{2,}\)/\r/g<cr>
No exemplo acima, ‘,s’ é um mapeamento para reduzir linhas em branco sucessivas para uma só\

Remove não dígitos (não pega números)

:%s/^\D.*//g
Remove final de linha DOS/Windows ^M que tem código hexadecimal igual a ‘0d’
:%s/\%x0d//g
Troca palavras de lugar usando expressões regulares:
:%s/\(.\+\)\s\(.\+\)/\2 \1/
Modificando todas as tags HTML para minúsculo:
:%s/<\([^>]*\)>/<\L\1>/g
Move linhas 10 a 12 para além da linha 30:
:10,12m30