Supposons que je recherche une classe JFactory
dans un dossier et ses sous-répertoires.
Comment puis-je déposer ce fichier qui contient class JFactory
?
Je ne veux pas remplacer ce mot mais je dois trouver ce fichier qui contient class JFactory
.
:vimgrep /JFactory/ **/*.Java
Vous pouvez remplacer le motif /JFactory/
avec /\<JFactory\>/
si vous voulez une correspondance complète avec Word. :vim
est un raccourci pour :vimgrep
.
Si JFactory
ou \<JFactory\>
est votre modèle de recherche actuel (par exemple, vous avez tapé *
sur une occurrence), vous pouvez utiliser un modèle de recherche vide: :vimgrep // **/*.Java
, il utilisera le dernier modèle de recherche à la place. Pratique!
Attention: :vimgrep
déclenchera les autocmds s'il est activé. Cela peut ralentir la recherche. Si vous ne voulez pas que vous puissiez le faire:
:noautocmd vimgrep /\<JFactory\>/ **/*.Java
ce qui sera plus rapide. Mais: cela ne déclenchera pas la coloration syntaxique ou n'ouvrira pas les fichiers gz
décompressés, etc.
Notez que si vous voulez qu'un programme externe grep votre modèle, vous pouvez faire quelque chose comme ceci:
:set grepprg=ack
:grep --Java JFactory
Ack
est une alternative écrite en Perl à grep. Notez qu'alors, vous devrez passer aux expressions régulières Perl.
Une fois la commande de votre choix retournée, vous pouvez parcourir les résultats de la recherche avec les commandes décrites dans la documentation Vim à :help quickfix
. Chercher :cfirst
, :cnext
, :cprevious
, :cnfile
, etc.
Mise à jour 2014: il existe désormais de nouvelles façons de le faire avec the_silver_searcher
ou the_platinum_searcher
et soit ag.vim
ou unite.vim
plugins.
À partir du dossier racine du projet, exécutez ce qui suit:
grep -H -r 'what_you_search' * | less
Vous obtiendrez une liste des dossiers et des lignes correspondantes avec cette chaîne.
The Silver Searcher ( https://github.com/ggreer/the_silver_searcher ) fortement recommandé, vraiment rapide!
installer
Sudo pacman -S the_silver_searcher // Arch Linux
Sudo apt install silversearcher-ag // ubuntu
utilisation
$ ag keywords
s'intègre à vim
rking/ag.vim ( https://github.com/rking/ag.vim )
après l'installation
:Ag keywords
Ce script peut aider: Filesearch .
Ouvrez la fenêtre de ligne de commande en:
Esc - pour vous assurer que vous êtes en mode Normal
tapez q, tapez:
la ligne de commande devrait s'ouvrir (comme un fichier tmp pour écrire la commande, vous pouvez naviguer comme vous le feriez normalement dans n'importe quel fichier vim ...
tapez i pour entrer en mode d'insertion
cet exemple recherchera la chaîne to_srch sous le répertoire courant pour tous les types de fichiers de type '. js' et '. Java' mais omettra tous les chemins de fichiers contenant la chaîne node_modules
:g/console.log/ | :vimgrep /console.log/ `find . -type f -name '*.js' -o -name '*.Java' -not -path '*node_modules/*'`
Maintenant, quand vous: copen, vous pouvez naviguer avec les touches fléchées à travers les résultats de sarch ...
vous pouvez également les définir dans .vimrc
" how-to search recursively under the current dir for the files of type js and Java but omit the
" node_modules file paths
":g/console.log/ | :vimgrep /console.log/ `find . -type f -name '*.js' -o -name '*.Java' -not -path '*node_modules/*'`
" reminder open the quick fix window by :copen 20
" reminder close the quick fix window by :ccl
vous pouvez omettre le premier: q/to_srch/Je l'utilise pour surligner automatiquement les résultats de la recherche car j'ai "mis hlsearch" dans mon ~/.vimrc
Tout indice permettant d'activer automatiquement les résultats de srch à partir de vimgrep ou dans vimrc sera très apprécié ...