6 votes

Comment faire une recherche incrémentale sur plusieurs fichiers texte dans VIM ?

Existe-t-il un moyen de faire en sorte que VIM effectue une recherche incrémentale sur des fichiers texte ?

Vim effectue déjà une recherche incrémentale dans le fichier actuellement ouvert.

Voici des exemples de programmes qui illustrent le type de recherche que j'essaie d'effectuer Vélocité notationnelle pour MacOS, Resop pour Windows ou SimpleNote pour le web.

Ces applications effectuent une recherche instantanée ou incrémentielle dans les fichiers d'un répertoire spécifique et facilitent ou accélèrent la recherche du fichier recherché ou la création d'un nouveau fichier.
J'utilise les deux mais je préfère vivre dans un seul éditeur (VIM).

Existe-t-il un plug-in qui pourrait faire cela ?

4voto

Brian Frost Points 6544

Vous pourriez utiliser le vimgrep commande, par exemple :

:vimgrep /searchword/ ~/**

Voir

:help vimgrep

pour les détails.

4voto

Andrew Wagner Points 159

Pas encore. Pour obtenir de bonnes performances de recherche incrémentale, il faudrait probablement que quelqu'un écrive un plugin en c qui charge les fichiers dans une grosse structure de données optimisée. Il peut y avoir un moyen de pirater vim pour lancer grep sur toute la base de données chaque fois que vous appuyez sur une touche, mais ce ne serait probablement pas assez rapide.

Pour un exemple de plugin vim open source qui effectue une recherche incrémentale (sur les noms de fichiers, pas sur le contenu des fichiers malheureusement), vous pouvez regarder le plugin command-t :

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

Une autre contrainte technique à laquelle on peut se heurter si l'on essaie de charger une base de données entière de notes dans les tampons vim est que chaque utilisateur est par défaut limité à 1024 fichiers ouverts simultanément, et de nombreuses bases de données de notes contiennent plus de notes que cela. Cette limite peut être levée assez facilement, mais les utilisateurs ne devraient pas avoir à se préoccuper de telles choses.

2voto

Craig McQueen Points 13194

Il existe un plugin sympa qui fait exactement cela, mais avec des tampons : LustyExplorer .

Il existe également d'autres plugins qui font presque la même chose avec les fichiers : EasyGrep y Ack mais la recherche incrémentale non plus.

Le premier (et d'autres, ainsi que NV ou Resoph Notes) peut effectuer une recherche incrémentale car tous les fichiers sont en mémoire, fonctionnant comme une sorte de base de données. Cela semble un peu plus difficile à mettre en œuvre sur des fichiers aléatoires.

J'aimerais vraiment voir une telle fonctionnalité dans Vim, car je viens de passer à Linux à plein temps et il n'existe pas de remplacement de Notational Velocity à ma connaissance. NV était un élément central de mon flux de travail sous Mac OS X et c'est en fait la seule pièce manquante, pour le moment. L'explication du problème par Drew Wagner et sa proposition de solution semblent intéressantes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X