Exemplos
Busca usando alternativas:
/end\(if\|while\|for\)
Buscará ‘if’, ‘while’ e ‘for’.
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.
set ignorecase .. ignora maiúsculas e minúsculas na bucsca
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 ativa-las em modo de comando precedendo-as com dois pontos, assim:
:set ignorecase<Enter>
Substituições com confirmação:
:%s/word/palavra/c ..... o `c' no final habilita a confirmação
Procurando palavras repetidas
/\<\(\w*\) \1\>
Multilinha
/Hello\_s\+World
Buscará ‘World’, separado 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\}$
^ ..... representa começo de linha
. ..... representa qualquer caractere
:%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