Vous pouvez utiliser la substitution de commande :
vim $(find -name somefile.txt)
ou
find -name somefile.txt -exec vim {} \;
Essayez ceci :
- lancer vim
- dans vim, utilisez ce qui suit :
:r!find /<path> -name 'expression'
Les résultats devraient apparaître dans vim lorsque la recherche est terminée.
Ou
Essayez :
find /<path> -name > results.txt
vim results.txt
Si cela ne vous dérange pas d'exécuter à nouveau la commande :appuyez sur Haut et ajoutez un xargs
commande. Ou utilisez la substitution d'historique et exécutez
!! | xargs vim # won't work with file names containing \'" or whitespace
!! | xargs -d \\n vim # GNU only (Linux, Cygwin)
Il existe un moyen léger d'enregistrer la sortie d'une commande qui fonctionne dans ksh et zsh mais pas dans bash (cela nécessite que le côté sortie d'un pipeline soit exécuté dans le shell parent). Pipez la commande dans la fonction K
(définition zsh ci-dessous), qui k conserve sa sortie dans la variable $K
.
function K {
K=("${(@f)$(tee /dev/fd/3)}") 3>&1;
}
find … |K
vim $K
L'enregistrement automatique de la sortie de chaque commande n'est pas vraiment possible avec le shell seul, vous devez exécuter la commande dans un terminal émulé. Vous pouvez le faire en exécutant script
(un utilitaire BSD, mais disponible sur la plupart des unices, y compris Linux et Solaris), qui enregistre toutes les sorties de votre session via un fichier (il y a encore un peu d'effort nécessaire pour détecter de manière fiable la dernière invite dans le texte dactylographié).