Como você faz a pesquisa incremental em vários arquivos de texto no VIM?

5

Existe uma maneira de fazer o VIM fazer pesquisas incrementais em arquivos de texto?

O Vim já faz pesquisas incrementais no arquivo aberto no momento.

Exemplos de programas que demonstram o tipo de pesquisa que estou tentando realizar são Notational Velocity para MacOS, Resop para Windows ou SimpleNote para a Web.

Esses aplicativos fazem uma pesquisa instantânea ou incremental nos arquivos de um diretório específico e facilitam / agilizam o acesso ao arquivo que você está procurando ou cria um novo arquivo.
Eu uso os dois, mas prefiro viver em um editor (sendo VIM)

Existe algum plug in que faria isso?

    
por Alex 07.10.2010 / 16:08

3 respostas

4

Você pode usar o comando vimgrep , por exemplo:

:vimgrep /searchword/ ~/**

Veja

:help vimgrep

para detalhes.

    
por 07.10.2010 / 18:22
2

Há um plugin legal que faz exatamente isso, mas com buffers: LustyExplorer .

Existem também outros plugins que fazem quase isso com arquivos: EasyGrep e Ack mas também não faz pesquisa incremental.

O primeiro (e outros, e NV ou Resoph Notes) podem fazer buscas incrementais porque todos os arquivos estão na memória, funcionando como um banco de dados. Parece um pouco mais difícil de implementar em arquivos aleatórios.

Eu realmente gostaria de ver essa funcionalidade no Vim, porque acabei de me mudar para o Linux em tempo integral e não há nenhum substituto Notational Velocity que eu saiba. NV foi uma parte central do meu fluxo de trabalho no Mac OS X e é realmente a única peça que está faltando, agora. A explicação de Drew Wagner sobre o problema e a proposição de uma solução parece interessante.

    
por 09.05.2011 / 07:44
2

Ainda não. Obter bom desempenho de pesquisa incremental provavelmente exigiria que alguém escrevesse um plug-in em c que carregasse arquivos em uma grande estrutura de dados otimizada. Pode haver uma maneira de hackear o vim para executar o grep em todo o banco de dados toda vez que você pressionar uma tecla, mas isso provavelmente não será rápido o suficiente.

Para um exemplo de um plug-in vim de código-fonte aberto que faz uma pesquisa incremental (em nomes de arquivos, não em conteúdo de arquivos, infelizmente), você pode olhar o plugin command-t:

link

Outra restrição técnica que pode ocorrer se alguém tentar carregar um banco de dados inteiro de anotações em buffers vim é que cada usuário é limitado por padrão a 1024 arquivos simultaneamente abertos, e muitos bancos de dados de notas contêm mais notas do que isso. O limite pode ser elevado com facilidade, mas os usuários não devem ter que lidar com essas coisas.

    
por 09.05.2011 / 06:09

Tags