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

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

Existe uma maneira de fazer com que o VIM faça pesquisas incrementais em arquivos de texto?

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

Exemplos de programas que demonstram o tipo de pesquisa que estou tentando realizar são Velocidade Notacionalpara Mac OS,Resoppara janelas ouNota Simplespara a web.

Esses aplicativos fazem uma pesquisa instantânea ou incremental nos arquivos de um diretório específico e tornam fácil/rápido restringir o arquivo que você está procurando ou criar um novo arquivo.
Eu uso os dois, mas prefiro morar em um editor (sendo o VIM)

Existe algum plug-in que faria isso?

Responder1

Você poderia usar o vimgrepcomando, por exemplo:

:vimgrep /searchword/ ~/**

Ver

:help vimgrep

para detalhes.

Responder2

Ainda não. Obter um bom desempenho de pesquisa incremental provavelmente exigiria que alguém escrevesse um plugin 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 cada vez que você pressiona uma tecla, mas isso provavelmente não seria rápido o suficiente.

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

https://wincent.com/products/command-t

Outra restrição técnica que pode ser encontrada ao tentar carregar um banco de dados inteiro de notas nos buffers do vim é que cada usuário está, por padrão, limitado a 1024 arquivos abertos simultaneamente, e muitos bancos de dados de notas contêm mais notas do que isso. O limite pode ser aumentado com bastante facilidade, mas os usuários não deveriam ter que lidar com tais coisas.

Responder3

Existe um plugin interessante que faz exatamente isso, mas com buffers:Lusty Explorer.

Existem também outros plugins que fazem quase isso com arquivos:EasyGrepeConfirmarmas a pesquisa incremental também não.

O primeiro (e outros, e NV ou Resoph Notes) pode fazer pesquisa incremental porque todos os arquivos estão na memória, funcionando como uma espécie de 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 mudar para o Linux em tempo integral e não há substituto para Notational Velocity que eu conheça. NV era uma parte central do meu fluxo de trabalho no Mac OS X e, na verdade, é a única peça que falta no momento. A explicação do problema e a proposta de solução de Drew Wagner parecem interessantes.

informação relacionada