Merci pour vos réponses.
Voila le résultat final, dans le .vimrc :
:map <F3> :call FindMethodInProject()<CR>
:map <F4> :call FindMotifInProject()<CR>
function! FindMethodInProject()
let motif = expand('<cword>')
split
enew
execute "normal iLa méthode est définie dans ce(s) fichier(s) :\n"
execute ":r !find . | grep -v '.swp' | grep -v '.svn' | xargs grep
-l 'def " . motif . "'"
endfunction
function! FindMotifInProject()
let motif = expand('<cword>')
split
enew
execute "normal iLe motif a été trouvé dans ce(s) fichier(s) :\n"
execute ":r !find . | grep -v '.swp' | grep -v '.svn' | grep -v
'/log/' | grep -v '/doc/' | xargs grep -l '" . motif . "'"
endfunction
Usage :
- Placer le curseur sur une méthode
- Touche F3 renvoit, dans un ecran splitté, le ou les noms des fichiers où
est définie la méthode
- Touche F4 renvoit, dans un ecran splitté, la liste des fichiers où est
utilisée la méthode (marche aussi pour n'importe quel motif)
Commentaires :
- C'est rapide et ça marche bien.
- Ca peut etre amélioré par plein d'autres trucs...Perso, ça me va comme ça.
- Je confirme que l'emploi de --exec marche, mais moins vite ;)
- Merci à SebTheMonster qui m'a aidé à écrire le script ;)
Questions :
- Si quelqu'un sait comment éviter tous les | entre les grep -v, je ne suis
pas arrivé à le faire en 1 seule commande.
- Avant d'afficher le résultat, Vim me répond "Le shell a retourné 123"
Est ce que quelqu'un peut me dire ce que ça signifie ? Et comment ne pas
etre obligé d'appuyer sur une touche pour voir la suite ?
FJ
Le 2 octobre 2008 21:06, Jean-François Trân <[EMAIL PROTECTED]> a écrit
:
>
> Le 2 octobre 2008 14:12, Emmanuel Bouton a écrit :
> >
> > C'est vrai ! Mais j'ai un petit faible pour xargs (c'est très subjectif
> !!!).
> > L'avantage c'est qu'on peut rajouter un petit "grep -v" avant xargs :
>
> Pas que subjectif. L'option --exec va faire en sorte que find
> crée un nouveau processus par fichier matché. Ce qui va se ressentir
> côté performances et rapidité p/r à find + xargs.
>
> -- Jean-François.
>
> --
> ça dépend
>
> http://twitter.com/underflow_
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---