Vim Cookbook
Vim Cookbook, por Steve OuallineEsta é a página do livro de receitas do Vim. Ele contém receitas curtas para fazer coisas simples e não tão simples no Vim. Você deverá conhecer o funcionamento básico do Vim, mas cada comando será explicado em detalhe.
Cada conjunto de instruções é um pacote completo. Sinta-se livre para escolher e pegar o que você precisa.
- Trocando Caracteres
- Trocando uma palavra por outra interativamente
- Substituindo uma palavra por outra com um comando
- Movendo Texto
- Copiando um Bloco de Texto de Outro Arquivo
- Ordenando Texto
- Tratando Makefiles e outros arquivos SOB
- Formatando um Parágrafo de Texto
- Encontrando uma função em um programa C
- Desenhando Caixas de Comentário
- Lendo uma Página Man
- Removendo Retornos de Carro de Arquivos MS-DOS
- Retirando Brancos no fim das linhas
- Oops, o arquivo está protegido contra escrita
- Trocando "Sobrenome, Nome" para "Nome Sobrenome"
- Como editar todos os arquivos que contém uma dada palavra
- Como editar todos arquivos contendo uma dada palavra usando o grep built-in
Trocando Caracteres
Se você escreve rapidamente, seus dedos podem facilmente adiantar-se à sua mente. Frequentemente as pessoas transpõe os caracteres. Por exemplo, a palavra “que” é escrita “qeu”.
Para trocar dois caracteres, por exemplo o “e” pelo “u”, coloque o cursor sob o “e” e escreva xp.
O comando “x” apaga um caracter (o “e”), e o “p” cola ele após o cursor (que está agora sob o “u”).
Trocando uma palavra por outra interativamente
O método n.
Suponha que você queira trocar todas as ocorrências da palavra “idiota” pela palavra “gerente”. Mas você quer ter a chance de revisar cada alteração antes de fazê-la.
Aqui está o que você deve fazer:
| Comando | Descrição |
|---|---|
1G
| Vai ao início do documento |
/idiota
| Encontra a primeira ocorrência da palavra “idiota” |
cwgerente
| Troca a palavra (cw) para gerente |
n
| Repete a última busca (encontra o próximo idiota) |
.
| Repete a última edição (troca uma palavra para gerente) (se você não quer alterar a palavra, pule este passo) |
Repita os passos 4 e 5 até que você tenha substituído todas as ocorrências.
A Virgem o Quê!?
Uma igreja recém comprou um computador e estava aprendendo a usar o
mesmo. A secretária da igreja decidiu criar uma carta padrão para
ser usada em serviços de funeral. Onde deveria ficar o nome da
pessoa ela colocou a palavra “
Certo dia houveram dois funerais, primeiro para uma senhora chamada
Maria, e depois para alguém chamada Edna. Então a secretária usou a
substituição global para trocar “
Imagine a surpresa do Ministro quando ele começou a ler a parte que continha o Credo Apostólico e disse "Nascido da Virgem Edna"...
O Método da Linha de ComandoSuponha que você quer trocar todas as ocorrências da palavra “idiota” pela palavra “gerente”. Mas você quer ter a oportunidade de revisar cada troca antes de fazer a mesma.
Execute o comando:
:%s/\/gerente/gc
Este comando vai fazer a alteração e fazer uma pausa após a alteração para dar a você uma chance de confirmar a mesma. Você pode informar “y” para aceitar a alteração ou “n” para recusar a mesma.
As partes deste comando são:
| : | Entre no modo de comando | ||||
%
| Execute este comando em todas as linhas (% é um sinônimo para “da primeira à última linha”) | ||||
s
| Abreviação do comando :substitute (substitua). | ||||
/\
| Este texto especifica o texto que estamos procurando. O \< informa ao Vim que deve combinar um início de palavra e o \> informa ao Vim que deve combinar um final de palavra | ||||
/gerente/
| O texto substituto | ||||
gc
| As flags. São estas:
|
Substituindo uma palavra por outra com um comando
Suponha que você queira substituir todas as ocorrências da palavra “idiota” pela palavra “gerente”. Nenhuma confirmação é necessária, por que todos os idiotas são gerentes.
Use o comando:
:%s/\/gerente/g
As partes deste comando são:
:
| Entra no modo de comando |
%
| Execute este comando em todas as linhas (% é um sinônimo
para “da primeira à última linha”)
|
s
| Abreviação do comando :substitute (substitua) |
/\
| Este texto especifica o texto que estamos procurando. O \< informa ao Vim que deve combinar um início de palavra e o \> informa ao Vim que deve combinar um final de palavra |
/gerente/
| O texto substituto |
g
| Flag de global -- Esta opção informa ao Vim que queremos trocar todas as ocorrências na mesma linha, não apenas a primeira. |
Movendo Texto
Comandos estilo Vi
Suponha que você queira mover um parágrafo do início do documento para o fim do mesmo. Existem várias formas de fazer isto. Neste exemplo, faremos isto usando comandos no estilo Vi. Na próxima seção faremos isto usando comandos Vim visual.
Para fazer a movimentação use os comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Mova o cursor para o início do parágrafo que queres mover | |
| 2 | ma
| Coloque uma marca de nome “a” neste ponto. (O Vim não dá indicação que o comando foi executado. Em outras palavras, não há alteração visível na tela) |
| 3 | Mova o cursor para o fim do parágrafo a ser movido | |
| 4 | d'a
| Apague o texto até a marca “a”. Este comando coloca o texto em um buffer de corte (“cut buffer”) |
| 5 | Mova o cursor para a linha em que o mesmo deve ficar. O parágrafo será colocado após esta linha | |
| 6 | p
| Cole (paste) o texto após o cursor |
Método Visual
Suponha que você queira mover um parágrafo do topo do documento para o fim. Existem várias formas de fazer isto. Neste exemplo, faremos isto usando o modo Visual do Vim. Na seção anterior, fizemos utilizando os comandos no estilo Vi.
Para fazer a movimentação, execute os comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Mova o cursor para o início do parágrafo que você quer movimentar | |
| 2 | v
| Inicie o modo visual. (Se você quer mover somente linhas inteiras, use o comando v que inicia o modo visual line) |
| 3 | mova o cursor para o fim do parágrafo a ser movimentado. O texto a ser movimentado será destacado. | |
| 4 | d
| Execute um visual delete. Em outras palavras, apague o texto destacado. |
| 5 | Mova o cursor para a linha em que o texto deve ir. O parágrafo será colocado após esta linha. | |
| 6 | p
| Cole (paste) o texto na linha abaixo do cursor |
Copiando um Bloco de Texto de Outro Arquivo
Estilo Vi
Exise mais de uma forma de copiar texto entre arquivos. Nesta seção usaremos os comandos Vi mais tradicionais. Na próxima seção, faremos a mesma operação usando o modo Visual.
Para copiar um bloco de texto entre arquivos diferentes, execute os seguintes comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Edite o arquivo contendo o bloco que você quer copiar | |
| 2 | Vá para a primeira linha do bloco a ser copiado | |
| 3 | ma
| Coloque uma marca “a” nesta linha |
| 4 | Vá para a última linha do bloco a ser copiado | |
| 5 | y'a
| Copie (yank - y) o texto da linha atual até a linha
que contém a marca “a”('a)
|
| 6 | :split segundo-arquivo
| Abre outra janela no Vim contendo o segundo arquivo (o arquivo em que o texto será inserido) |
| 7 | Vá para a linha em que a inserção deve ocorrer. O texto será colado após esta linha | |
| 8 | p
| Cole o texto após o cursor |
Método Visual
Existe mais de uma forma de copiar texto entre arquivos. Nesta seção, usaremos os novos comandos do modo visual. Veja a seção anterior para o velho estilo Vim de fazer as coisas.
Para copiar um bloco de texto entre arquivos, execute os comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Edite o arquivo contendo o texto a ser copiado. | |
| 2 | Vá à primeira linha do bloco a ser copiado. | |
| 3 | v
| Inicie o modo visual. Se você quer copiar um bloco de linhas
inteiras, use o v para iniciar o Visual Line Mode.
|
| 4 | Vá à última linha do bloco a ser copiado. O texto a ser copiado será destacado. | |
| 5 | y
| Copie (Yank - y) o texto (o texto é copiado para um
buffer).
|
| 6 | :split segundo-arquivo
| Abre outra janela contendo o segundo arquivo (o arquivo para o qual o bloco de texto será copiado) |
| 7 | Vá à linha em que a inserção deve ocorrer. O texto será inserido na linha seguinte à linha do cursor | |
| 8 | p
| Coloque o texto após o cursor |
Ordenando Texto
Estilo Vi
Frequentemente você estará editando um arquivo com uma lista de nomes no mesmo. Por exemplo, uma lista de arquivos objeto que fazem parte de um programa.
Por exemplo:
version.o
pch.o
getopt.o
util.o
getopt1.o
inp.o
patch.o
backupfile.o
Esta lista ficaria melhor se estivesse em ordem alfabética. Ou pelo menos em ordem ASCII. Para colocar esta lista em ordem alfabética, execute os seguintes comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Mova o cursor para a primeira linha a ser ordenada. | |
| 2 | ma
| Crie uma marca na primeira linha com o nome “a” |
| 3 | Mova o cursor para a última linha do texto a ser colocado em ordem alfabética | |
| 4 | !'asort
| O comando ! informa ao Vim para passar o texto para
um comando UNIX. O 'a informa ao editor que o texto a ser
passado começa na linha atual e termina na marca a. O
comando pelo qual o texto será filtrado é o sort.
|
O resultado fica parecido com o seguinte:
backupfile.o
getopt1.o
getopt.o
inp.o
patch.o
pch.o
util.o
version.o
Na prática, o que você costuma ver em arquivos Makefiles (arquivos que são utilizados pelo UNIX para controlar compilações) é mais parecido com o seguinte:
OBJS = \
version.o \
pch.o \
getopt.o \
util.o \
getopt1.o \
inp.o \
patch.o \
backupfile.o
Note que a contra-barra (\) é usada para indicar que a linha continua na linha seguinte. Após fazer o ordenamento, ficamos com algo assim:
OBJS = \
backupfile.o
getopt1.o \
getopt.o \
inp.o \
patch.o \
pch.o \
util.o \
version.o \
Os nomes estão em ordem, mas as contra-barras estão erradas. Não esqueça de corrigir isto usando a edição normal, antes de prosseguir com a compilação.
OBJS = \
backupfile.o \
getopt1.o \
getopt.o \
inp.o \
patch.o \
pch.o \
util.o \
version.o
Ordenação - Método Visual
Frequentemente você estará editando um arquivo com uma lista de nomes no mesmo. Por exemplo, uma lista de arquivos objeto que constituem um programa.
Por exemplo:
version.o
pch.o
getopt.o
util.o
getopt1.o
inp.o
patch.o
backupfile.o
Seria legal ter a lista em ordem alfabética. Ou pelo menos em ordem ASCII. Para colocar em ordem alfabética esta lista, execute os seguintes comandos:
| Comando | Descrição | |
|---|---|---|
| 1 | Mova o cursor para a primeira linha a ser ordenada | |
| 2 | v
| Entre no modo Visual Line |
| 3 | Mova o cursor para a última linha de texto a ser ordenado | |
| 4 | !sort
| O comando ! informa ao Vim para passar o texto
destacado pelo comando UNIX informado. Neste caso, o comando será
passado pelo sort
|
Veja a advertência na seção anterior, para uma descrição resumida de problemas que podem ocorrer no uso deste comando.
Tratando Makefiles e outros arquivos SOB
Um problema com o formato de arquivo usado pelo comando UNIX make é que ele é extremamente minucioso.
Por exemplo, o seguinte comando está correto:
prog: prog.c
cc -g -o prog prog.c
Mas o seguinte comando não:
prog: prog.c
cc -g -o prog prog.c
À primeira vista, você pode pensar que os dois são idênticos. Mas veja com mais atenção. A linha com o “cc” no primeiro exemplo inicia com um tab. No segundo exemplo, ela começa com oito espaços. (Você não consegue descobrir a diferença entre um espaço e um tab quando impressos na tela!)
Então como você pode dizer quando está certo ou não, especialmente quando na tela (ou em papel impresso) ambos são idênticos?
A resposta é que você não consegue. Você pode pensar que é um pouco injusto. Especialmente quando o make funciona com a primeira linha e não com a segunda. Mas quem disse que o UNIX era justo?
Por sorte, o Vim tem um modo que te informa exatamente o que há no seu arquivo. Execute o comando:
:set list
Ele coloca o Vim no modo list. Quando o display é colocado no “list mode”, todos os caracteres são impressos. Tabulações são mostradas como “^I” e o fim da linha é apresentado como um $. Desta forma, no list mode, nossos dois exemplos ficam:
prog: prog.c$
^Icc -g -o prog prog.c$
e
prog: prog.c$
cc -g -o prog prog.c$
Assim é fácil ver qual linha tem a tabulação.
Formatando um Parágrafo de Texto
O Vim não é um processador de palavras. Existem algumas coisas que você pode fazer para tornar as coisas mais fáceis quando estiver editando texto.
Processadores de palavras automaticamente passam para a próxima linha quando uma linha que você está escrevendo é maior que as margens. O editor Vim deixa você fazer uma linha tão longa quanto você quiser. Executando o comando:
:set wrapmargin=70
você pode informar ao Vim para quebrar automaticamente linhas maiores que 70 caracteres (você pode ajustar este número para qualquer valor que você quiser).
Isto torna a inserção de texto muito mais fácil. Ele não resolve o problema de edição. Se você entrar um parágrafo e então decidir apagar metade das palavras na primeira linha, o Vim não vai reformatar o texto.
Você pode forçar uma reformatação de um parágrafo executando os comandos:
| Comando | Explicação | |
|---|---|---|
| 1 | Mova o cursor para o início do parágrafo | |
| 2 | gq}
| Reformata automaticamente o texto até o fim do parágrafo. O
} indica que o comando gq deve seguir até o fim do
parágrafo atual
|
Encontrando uma função em um programa C
O programa Vim foi escrito por programadores para programadores. Você pode usar o mesmo para localizar procedimentos dentro de um conjunto de arquivos de programa C ou C++.
Mas antes, você precisa gerar um arquivo de tabela de conteúdo chamado de arquivo “tags”. (Este arquivo recebe o nome óbvio de tags). O comando ctags gera estes arquivos de tabela de conteúdo.
Para gerar uma tabela de conteúdo de todos os arquivos de programa C no seu diretório atual, use o comando abaixo:
$ ctags *.c
Para programas C++, use o comando abaixo:
$ ctags *.cpp
Se você utilizar uma extensão diferente que .cpp para seus arquivos
C++, use a mesma em vez de .cpp.
Uma vez este arquivo seja gerado, você pode informar ao Vim
que você quer editar uma função, e ele irá encontrar o arquivo que
contém aquela função, e posicionar você lá. Por exemplo, se você
quer editar a função write_file, use o comando abaixo:
$ vim -t write_file
Agora, suponha que você está examinando a função write_file,
e esta chama a função setup_data e você quer dar uma olhada
na mesma. Para saltar para aquela função, posicione o cursor no
início de setup_data e pressione Ctrl+]. Isto informa ao
Vim que ele deve saltar para a definição daquela função. Este
reposicionamento irá ocorrer mesmo que o Vim tenha que abrir
outro arquivo para isto.
Se você editou o arquivo atual e não gravou as alterações, o Vim vai apresentar uma advertência e irá ignorar o comando Ctrl+].
Desenhando Caixas de Comentário
Eu gosto de colcoar grandes caixas de comentário no início de cada uma de minhas procedures. Por exemplo:
/*******************************************************
* Program -- Solve it -- Solves the worlds problems. *
* All of them. At once. This will be a great *
* program when I finish it. *
*******************************************************/
Desenhar caixas como estas é na melhor das hipóteses tedioso. Mas o Vim possui uma funcionalidade legal chamada abreviações que faz as coisas ficarem mais fáceis.
Primeiro, você precisa criar um arquivo de inicialização do
Vim chamado ~/.vimrc (uma primeira olhada e o mesmo se
parece com um arquivo de inicialização ex. E é. O modo de
comando do Vim é na verdade um modo de editor ex).
O arquivo ~/.vimrc deve conter as seguintes linhas:
:ab #b /*******************************************************
:ab #e *******************************************************/
Estes comandos definem um conjunto de abreviações Vim. O que é
uma abreviação Vim? É uma palavra que significa outra palavra.
Quando o Vim encontra uma abreviação, ele irá expandir a mesma
para a palavra completa. Neste caso definimos um abreviação chamada
#b que é expandida para a linha inicial da caixa de
comentário. A abreviação #e faz o mesmo.
Desta forma, para criar uma caixa de comentário entre
#b. A tela ficará parecida com:
/*******************************************************
Entre os comentários, incluindo os caracteres “*” iniciais e
finais. Finalmente, termine o comentário escrevendo
#e. Isto fará com que o fim do comentário
seja inserido.
Esta página foi escrita no Vim. Então como conseguimos entrar com o #b e #e? Fácil, escrevemos #bb e então apagamos um caracter (não poderíamos entrar #b por que seria expandido).
Outros comandos úteis que um programador pode querer colocar no seu ~/.exrc incluem:
:set autoindent
:set autowrite
:ab #d #define
:ab #i #include
:ab #b /*******************************************************
:ab #e *******************************************************/
:ab #l /*-----------------------------------------------------*/
:set sw=4
A configuração autoindent faz com que o Vim indente novas linhas com a mesma quantidade de espaços/tabulações que a linha anterior. Esta opção é muito útil para escrever programas. A configuração de autowrite informa o Vim que ele deve gravar um arquivo antigo quando mudar para um outro arquivo.
As abreviações #d,
#i e
#l definem
termos úteis para programadores.
Finalmente, o comando set sw=4 configura o tamanho do
shift (o número de caracteres que um texto é movimentado para os
lados com os comandos shift - << e
>>)
Esta opção é especialmente útil se você usa indentação de 4 espaços nos seus programas C ou C++ (estudos na Rice University demonstraram que este é o melhor tamanho de indentação).
Lendo uma Página Man
Você pode utilizar o editor Vim para visualizar arquivos texto. Um dos conjuntos mais úteis de arquivos para navegação são as páginas man. Para isto, montamos uma pipeline de três comandos.
O primeiro comando é o man que obtém a página. O seguinte é o ul, que torna os códigos de escape do sublinhado (underline) e negrito (bold) em algo legível, e finalmente, usamos o Vim para navegar pelo arquivo.
Assim, o nosso comando fica:
$ man subject | ul -i | vim -
A página man será gerada e então apresentada na janela do Vim. Você pode usar seus comandos normais de edição para navegar nos arquivos.
Removendo Retornos de Carro de Arquivos MS-DOS
Se você tentou editar um arquivo MS-DOS, deve ter notado que cada
linha termina com um caracter ^M. Isto é causado pela
forma estranha que o MS-DOS trata o fim-de-linha.
Para remover os caracteres ^M de um arquivo MS-DOS, use o
comando abaixo:
:1,$s/{Ctrl+V}{Ctrl+M}//{ENTER}
Este comando comessa com um dois-pontos (:) para fazer o Vim
entrar em modo ex. Todos comandos ex começam com um
intervalo de linhas, que neste caso é da primeira linha (1) até a
última linha ($). A barra indica o início do texto que deve ser
substituído. O {Ctrl+V} informa ao Vim que deve
tratar o próximo caracter como um caracter normal, se ele tiver
algum significado especial. O próximo caracter será
{Ctrl+M} (que seria tratado como um {Enter} sem o
{Ctrl+V}). A próxima barra termina o texto a ser
substituído. O que segue é o texto substituto. Neste caso é nada
(//).
Retirando Brancos no fim das linhas
Algumas pessoas acham que espaços no fim das linhas inúteis, um desperdício, e horríveis. Para remover os espaços em branco no fim de todas as linhas, execute o comando abaixo:
:1,$s/[ ]*$//
Os dois-pontos (:) fazem com que o Vim entre no modo ex. Todos comandos ex iniciam com um intervalo de linhas, que neste caso é o arquivo inteiro (da linha 1 até a última linha: $).
O primeiro conjunto de barras separa o texto a ser substituído. Os
colchetes indicam que qualquer caracter dentro deles serve. Desta
forma, [ combina com espaço ou tabulação. O
asterisco (*) significa que o caracter anterior (espaço ou
tabulação) pode ser repetido qualquer número de vezes. O cifrão ($)
indica um fim de linha.
Desta forma, [ diz ao Vim para procurar por
qualquer número de espaços ou tabulações que sejam seguidos por um
fim de linha.
Estes são substituídos pelo texto que está entre o próximo conjunto de barras. Neste caso, é nada, e os espaços e tabulações são efetivamente removidos.
Oops, o arquivo está protegido contra escrita
Digamos que você tenha editado um arquivo e tenha feito muitas alterações. Ele é um arquivo muito importante e para proteger o mesmo de qualquer edição casual, você protegeu o mesmo contra escrita, mesmo de você mesmo.
O Vim permite que você edite um arquivo protegido com pouca ou
nenhuma advertência. O único problema é que quando você tenta sair
usando “ZZ” você recebe uma mensagem de erro de
resposta:
file.txt File is read only
e o Vim não é fechado.
O que você pode fazer? Você não quer descartar todas as alterações, mas precisa sair do Vim de forma que você possa ligar a permissão para escrita.
O truque é executar o comando :shell. Este comando coloca
você fora do Vim iniciando um processador de comandos (shell)
sob o Vim.
Você pode então habilitar a escrita no arquivo:
$ chmod u+w file.txt
e sai do shell, retornando ao Vim
$ exit
Finalmente, você pode forçar o Vim a escrever o arquivo utilizando o comando:
:w!
(O Vim continua pensando que o arquivo está protegido contra
escrita, de forma que precisamos convencer o mesmo usando a opção
“force” - ! - obrigando-o a escrever o arquivo)
É uma boa idéia ficar o menor tempo possível em um processador de comandos iniciado pelo comando :shell. Isto por que é fácil esquecer que você está rodando sob o Vim. É possível iniciar um shell, e iniciar um Vim, e iniciar um shell, e iniciar um Vim, e... Usando este método, você pode facilmente consumir boa parte dos recursros da máquina e gerar muita confusão.
Mantendo suas sessões :shell curtas, você pode evitar
muitos problemas.
Trocando "Sobrenome, Nome" para "Nome Sobrenome"
Você tem uma lista de nomes na forma:
Sobrenome, Nome
Como mudar para:
Nome Sobrenome
Isto pode ser feito com um comando:
:1,$s/\([^,]*\), \(.*$\)/\2 \1/
O dois-pontos (:) informa ao Vim que este é um comando no estilo ex.
O intervalo de linhas para este comando é o arquivo inteiro, como
indicado pelo intervalo 1,¤.
O s (substitute - substituir) informa ao Vim que iremos
fazer uma substituição de string.
O texto antigo é uma expressão regular complexa. Os delimitadores
\( ... \) são usados para informar ao editor que o texto
que combinar com a expressão regular deve receber tratamento
especial.
O texto no primeiro \( ... \) é atribuído para \1
no texto substituto. O segundo conjunto de texto dentro de
\( ... \) é atribuído para \2, e assim por
diante.
Neste caso, a primeira expressão regular é qualquer quantia de
caracteres que não inclua uma vírgula. O [^,] significa
tudo exceto a vírgula, e o * significa zero ou mais
caracteres.
A segunda expressão combina com qualquer coisa: .* até o
fim da linha: ¤
O resultado desta substituição é que a primeira palavra na linha é
atribuída para o \1, e a segunda parte para \2.
Estes valores são usados no fim do comando para trocar as palavras.
Como editar todos os arquivos que contém uma dada palavra
Este comando envolve o fgrep, bem como o caracter especial do shell “backtick” (crase).
Para editar todos os arquivos de programa C que contenham a palavra indentation_level execute o comando:
$ vim fgrep -l indentation_level *.c
O comando fgrep -l indentation_level *.c procura em
todos os arquivos terminados com .c pela palavra
indentation_level, e lista os nomes dos arquivos.
Uma vez que este comando está entre crases (`), o resultado do comando (uma lista de arquivo) toma o lugar do comando na linha de comando.
O editor Vim é então executado nestes arquivos. Os comandos
:n{Enter} e :rew{Enter} podem ser usados
para trocar de arquivo.
Como editar todos arquivos contendo uma dada palavra usando o grep built-in
Inicie o Vim.
Execute o comando:
:grep >word< >file-list<
Este comando encontra a primeira localização de word nos
arquivos informados e posiciona o cursor naquela linha. Você pode
utilizar o comando :cn para encontrar a próxima
ocorrência.