Última atualização:

Como encontrar arquivos no VIM (sem plugins)

Nawarian
Nawarian vim

Esta dica eu aprendi recentemente e mudou completamente a forma como eu uso o editor VIM!

Eu estou acostumado a utilizar o plugin NERDTree pra navegar nos arquivos do projeto e fazer algumas buscas superficiais. Na maioria dos casos funciona bem pra mim, mas esta técnica que eu aprendi tem me economizado MUITO tempo.

Caso você queira dar seus primeiros passos com VIM, eu escrevi um artigo bem simplificado sobre como começar a utilizar o VIM.

Vem comigo e lê até o final que tem dica de ouro sobre como deixar esse negócio ainda mais eficiente!

A árvore de arquivos que vamos usar como exemplo

Os exemplos que eu vou apresentar aqui (e no vídeo de apoio ao final do artigo) são baseados no projeto qmario – um emulador de NES escrito em C que eu estou desenvolvendo com vocês.

A estrutura de pastas atualmente é a seguinte:

$ tree
.
├── LICENSE
├── Makefile
├── build
│   ├── bus.o
│   ├── cpu.o
│   ├── main.o
│   └── qmario
└── src
    ├── bus.c
    ├── bus.h
    ├── bus.test.c
    ├── cpu.c
    ├── cpu.h
    ├── cpu.test.c
    └── main.c

O comando :find

Dentro do editor VIM você pode executar o comando :find pra buscar e abrir arquivos num determinado diretório.

:find src/main.c

Ao executar o comando acima, caso VIM encontre um arquivo main.c dentro da pasta src/ ele irá abrir o arquivo imediatamente.

O comando também tem autocomplete ao pressionar a tecla TAB. Por exemplo, se o arquivo Makefile existe o seguinte comando vai te ajudar a encontrar:

:find ma<TAB>

Só que em vez de escrever <TAB> você deveria apertar a tecla TAB (aquela que fica em cima do Caps Lock). Note que quando fizer isso, caso VIM encontre o arquivo, vai auto completar pra ti a linha. Note também que pra esta busca não importa muito se o nome está em maiúsculo ou minúsculo.

Busca recursiva

O comando find por si só já é útil, mas convenhamos que se você já sabe a pasta onde o arquivo está não tem muito o que procurar.

A coisa é que esse comando é muito poderoso! Ele respeita uma variável chamada path que indica todos os diretórios que VIM deveria utilizar pra buscar seus arquivos.

Para forçar o VIM a busca recursivamente seus arquivos você pode adicionar o caminho ** à variável path, assim:

:set path+=**

Note que += aqui significa “adicione ao conteúdo da variável” e ** é valor que estamos adicionando. Agora podemos fazer buscas recursivas:

:find cpu.c

O comando acima vai encontrar o arquivo src/cpu.c sem muita dificuldade!

Visualizar opções

As vezes os arquivos podem ter nomes parecidos e isso gera uma certa ambiguidade que o mecanismo de busca find não consegue resolver sozinho. Por exemplo, nós temos os arquivos src/cpu.c, src/cpu.h, src/cpu.test.c e build/cpu.o.

Uma forma muito bacana de resolver essa ambiguidade é habilitar o wildmenu que vai te mostrar opções sempre que não conseguir encontrar um único resultado para a sua busca.

Para ativar rode o seguinte comando:

:set wildmenu

Pronto! Agora se você procurar por cpu e pressionar TAB um novo menu deverá aparecer pra ti com diferentes opções para o mesmo arquivo como na imagem a seguir:

Conclusão e vídeo de apoio

Tá aí na mão mais uma dica massa pra tu que quer entender melhor como funciona e como aumentar sua produtividade com o VIM.

Caso tenha dúvidas sobre como isso funciona, eu fiz esse pequeno vídeo de apoio aqui pra te ajudar a entender:

Não esquece de compartilhar este artigo nas suas redes sociais que ajuda muito a gente. Te vejo na próxima!

Comentários