2009-09-06 6 views
1

J'ai construit une base de données fastfind comme mentionné dans le lien suivant comme mentionné dans le manuel Unix Power Tools. FastFind db n'est rien mais un fichier qui contient une liste de fichiers dans mon projet et j'ai écrit un script pour rechercher dans la liste pour une recherche plus rapide.Plugin Vim LocateFile avec fastfind

Maintenant, je voudrais intégrer ce script avec lookupfile plugin. De l'aide du plugin lookupfile, il semble que ce soit possible. Bien que, je ne pouvais pas trouver un moyen de le faire.

Des idées?

Voici le lien pour plugin lookupfile:

http://www.vim.org/scripts/script.php?script_id=1581

Répondre

1

Avez-vous vu la section d'aide "LookupFile_Bufs_BufListExpr"? Il n'y a pas beaucoup d'informations, mais j'ai vu que plugin/lookupfile.vim a des exemples d'utilisation, peut-être vous pouvez déterminer comment câbler votre "recherche" dans celui-ci?

En fait, vous n'avez pas donné de lien sur la façon dont vous construisez votre liste de fichiers ou cherchez-y? Si c'est plus rapide que ce que Lookupfile donne par défaut, je suis curieux de savoir ce que vous faites, comme je le souhaite parfois plus vite.

+0

J'ai brièvement regardé les exemples mais je ne pouvais pas aller trop loin avec ça. Mais je vais donner un autre coup de feu. Voici le lien pour construire une base de données fastfind: http://docstore.mik.ua/orelly/unix/upt/ch17_19.htm Merci! –

+0

Désolé, je vous ai indiqué un mauvais paramètre, je pense que vous avez besoin de LocateFile_LookupFunc. Merci pour le lien, il semble que le temps de réponse dépend de la performance grep. Egrep devrait être très rapide, mais vous n'utilisez pas le droit de regex? Aussi, je me demande si ce sera plus rapide que de regarder à partir d'un fichier de tags triés. Bien sûr, ils ne sont pas identiques, car grep trouve des correspondances dans le chemin complet, tandis que la recherche de tags peut être restreinte au nom de fichier. – Irha

+0

Vous voulez dire LookupFile_LookupFunc – idbrii

0

Je vous suggère de regarder les plug-ins suivants, ils fournissent imo une solution supérieure au problème de la recherche de fichiers dans votre projet (même si il y a quelques verrues):

http://www.vim.org/scripts/script.php?script_id=3025 Le plug-in Command-T fournit un mécanisme extrêmement rapide et intuitif pour ouvrir des fichiers avec un nombre minimal de frappes. Il s'appelle "Command-T" car il est inspiré par la fenêtre "Aller au fichier" liée à Command-T dans TextMate.

http://github.com/airblade/vim-rooter/tree/master/plugin/ Modifie le répertoire de travail Vim vers le projet root (identifié par la présence du répertoire .git).

0

Avez-vous essayé l'installation par défaut de LookupFile?

:help lookupfile-tags décrit comment créer le fichier filenametags de LookupFile. Copiez simplement cette commande dans un script et exécutez-la dans votre racine source.

Si vous utilisez déjà votre base de données fastfind pour d'autres choses, alors vous pouvez le convertir au format LookupFile (ou vice-versa selon ce qui est plus détaillé). J'ai fait quelque chose de similaire pour convertir mes filenametags en cscope.files. Voir le code here on github (il construit aussi des ctags). Ou, comme l'a dit Irha, écrivez votre propre LookupFile_LookupFunc. (Je suis meilleur avec les commandes de shell que vimscript donc cela me semble plus difficile.)