Question:
Sublime Text comme une recherche de système de fichiers floue pour Mac OS X
vbo
2013-07-19 01:34:29 UTC
view on stackexchange narkive permalink

Actuellement, j'utilise les capacités de navigation d'Alfred dans le système de fichiers. C'est assez génial, mais parfois je veux que la recherche floue corresponde non seulement au nom de fichier mais au chemin complet.

Par exemple. Je veux trouver un fichier pdf avec un nom de fichier très courant (par exemple, proposition.pdf). Et j'ai une structure de répertoires comme celle-ci:

  - dropbox - partners - supercorp - proposal.pdf - megacorp - proposal.pdf  

Ce serait bien si je peux taper dro / meg / propos pour accéder au fichier de proposition du megacorp. La réponse peut être le plugin Alfred ou une configuration, mais j'accepterai toute solution qui me permet de naviguer rapidement vers ce fichier et d'effectuer une action (par exemple, révéler dans Finder ou quelque chose). La fonctionnalité " Rechercher au fur et à mesure" est très importante.

UPD Je viens de trouver une question similaire. Il semble que la fonction de correspondance de chemin complet soit manquante car mdfind recherche uniquement le nom du fichier et tous les outils l'utilisent en interne.

Alfred peut naviguer dans le système de fichiers, avec la saisie semi-automatique. Si vous tapez `~`, puis tapez `dro`, appuyez sur Entrée pour compléter automatiquement` Dropbox`. Alors «meg» correspondrait à «megacorp», etc. Ce n'est pas tout à fait une correspondance de chemin, mais cela pourrait être utile. Une fois que vous avez trouvé le fichier dans Alfred, appuyez sur la touche fléchée droite et vous pouvez accéder aux actions sur les fichiers.
Merci, alexwlchan. La fonction "Navigation dans les fichiers" d'Alfred est très utile et je l'utilise beaucoup, tout en "explorant" la nouvelle structure de répertoires. J'ai besoin d'une correspondance dans le cas où je connais déjà la structure et que je veux aller plus vite aux choses.
Six réponses:
#1
+3
user6844017
2019-05-21 10:52:15 UTC
view on stackexchange narkive permalink

Alfred est livré avec un exemple de flux de travail appelé Dynamic File Search qui fait quelque chose de similaire à la recherche floue:

https://www.alfredapp.com/blog/tips-and-tricks/how-to-get-the-results-you-want-in-alfred-every-time/

https://www.alfredforum.com/topic/11981-searching-in-files-in-a-specific-location/?do=findComment&comment=62957

Alfred recherche dans les répertoires et les noms de fichiers en même temps

Pour l'ajouter, cliquez sur le [+] en bas des préférences de flux de travail et choisissez Exemples > Recherche dynamique de fichiers.

  1. Tapez "ff" dans Alfred pour sélectionner d'abord un champ de recherche
  2. Saisissez ensuite le nom du fichier que vous recherchez dans ce dossier

Vous trouverez plus de documentation sur la fonctionnalité de filtrage de fichiers d'Alfred ici https://www.alfredapp.com/help/workflows/inputs/file-filter/

#2
+2
Lri
2013-07-22 18:00:09 UTC
view on stackexchange narkive permalink

Il existe un attribut kMDItemPath, mais il ne peut pas être utilisé dans les requêtes. Vous pouvez cependant grep la sortie de mdfind:

  $ pp () {path = "/ $ {1% / *} /"; mdfind "nom: $ {1 ## * /}" | grep -i "$ {chemin //\//.*\/}"; } $ time pp desk / ante / Library / Desktop Pictures / Antelope Canyon.jpg0.365  

La correspondance avec kMDItemFSName est souvent beaucoup plus lente:

  $ time mdfind "kMDItemFSName = \" ante. * \ "c" | grep -i '/desk.*/'/Library/Desktop Pictures / Antelope Canyon.jpg10.232  

J'ai essayé de créer un filtre de script comme celui-ci dans Alfred:

  q = "{query}" shopt -s nocasematchamp () {local o = $ {1 // & / &amp;} o = $ {o // < / &lt;} printf% s "$ {o // > / &gt;} "} output = '<? Xml version =" 1.0 "? ><items>' while IFS = read -rl; faire path = $ (ampli "$ l") sortie + = "<item><arg> $ path< / arg><title> $ (Ampère "$ {l ## * /}") < / title><subtitle> $ Type path< / subtitle><icon = \" fileicon \ "> $ path< / icon>< / item> "done < < (if [[$ q = ~. + /. +]]; then dir = $ {q% / *} mdfind" nom: $ {q ## * /} "| while IFS = read -rl; do [[$ {l% / *} = * / $ {dir // \ / * /} *]] && echo "$ l" doneelse mdfind "kind: nom du dossier: $ q" fi | head -n20) echo "$ output< / items>< / xml>"  

Je ne pouvais pas le faire fonctionner correctement, et il fallait souvent plusieurs secondes pour mettre à jour les résultats.

Très bonne réponse. Je crée également un simple filtre de script de preuve de concept pour Alfred, en utilisant `mdfind | grep` manière. Voir [gist] (https://gist.github.com/vbo/6060982). C'est très loin d'être idéal. Je vais essayer de l'utiliser moi-même pendant un certain temps pour corriger quelques bugs et peut-être que je proposerai des améliorations. Mais pour l'instant, je ne pense pas que cette approche (ou la vôtre) puisse être utilisée dans la solution prête à l'emploi robuste.
#3
+2
Byron
2015-11-11 07:24:40 UTC
view on stackexchange narkive permalink

Vous pouvez essayer Findspot. Findspot prend en charge ces fonctionnalités

  1. Recherche floue comme Control-P de Sublime Text
  2. Recherche de chemin complet
  3. Recherche en cours de frappe
  4. ol >

    Voici une capture d'écran de Findspot lorsque vous utilisez votre exemple:

    enter image description here

    En fait, vous pouvez ignorer les barres obliques et vous obtenir le même résultat.

#4
  0
Zo219
2013-07-20 03:25:45 UTC
view on stackexchange narkive permalink

Easy Find, gratuit, de DevonTechnologies vous permet de rechercher des fichiers, des dossiers ou les deux, dans n'importe quel dossier à partir de dossiers uniques ou du disque entier - ainsi que d'utiliser des critères facilement sélectionnés: flou, invisible, nom , contenu, etc.

Difficile d'estimer combien de centaines d'heures cela m'a permis de gagner au fil des ans pendant qu'Apple fouillait avec Spotlight et Saved Search. Trouve, presque instantanément, tout .

Je viens d'essayer Easy Find et je n'ai trouvé aucun moyen de faire correspondre le chemin complet du fichier - il correspond uniquement au nom de fichier comme Alfred et Spotlight. Peut-être que je manque quelque chose.
Toutes les colonnes habituelles sont là - taille, date, etc. - il suffit parfois de les faire glisser plus loin. "Où" montre le chemin. Aussi, en cliquant sur un en-tête de colonne trie par.
Les colonnes sont là, mais la recherche ne correspond qu'au nom de fichier. Si je me trompe, veuillez ajouter des instructions précises sur la façon de le faire fonctionner.
En ce qui concerne la correspondance de recherche, cela doit être configuré dans tous les choix sur le côté gauche. Fichiers et / ou dossiers, visibles ou non, etc. Réduisez l'emplacement de recherche dans le menu déroulant en haut à droite qui commence par le nom du disque dur.
#5
  0
Rivenfall
2015-04-17 03:07:04 UTC
view on stackexchange narkive permalink

Ajoutez ceci dans ~ / .bash_profile (vous pouvez remplacer cd par open)

  export PATH = $ PATH: ~ / bincds () {cd "$ (find. -type d -maxdepth 3 | selecta)"}  

Et ajoutez selecta de https://github.com/garybernhardt/selecta / blob / master / selecta dans ~ / bin

Maintenant, lorsque vous lancez un terminal, vous pouvez taper cds et commencer la recherche!

Fichier AppleScript pour ouvrir iTerm et entrer cds automatiquement: cds.applescript

  activer l'application "iTerm" dire à l'application "Evénements système" d'appuyer sur "t" en utilisant la commande downtell application "iTerm" pour dire à la session -1 du terminal courant d'écrire du texte " cds " 

vous pouvez tester le script en utilisant la commande osascript cds.applescript Vous pouvez même configurer un raccourci clavier pour l'appeler: http: / /www.macdevcenter.com/pub/a/mac/2007/06/08/hit-and-run-launching-applescripts-with-keyboard-shortcuts.html?page=1

#6
-1
Влад Цыганов
2017-03-19 01:29:01 UTC
view on stackexchange narkive permalink

Pourquoi avez-vous besoin d'une recherche floue sous les projecteurs, si le terminal est ici? open dro [tab] meg [tab] prop [tab]

vous pouvez également configurer votre .bash_profile en additionals.

Bienvenue à Ask Different!Nous essayons de trouver les meilleures réponses et ces réponses fourniront des informations sur les raisons pour lesquelles elles sont les meilleures.Les réponses doivent être autonomes, alors expliquez pourquoi vous pensez que la réponse que vous avez fournie résoudra le problème ou est meilleure que d'autres.Fournir des liens comme informations complémentaires peut également aider le PO, et d'autres, à trouver des informations supplémentaires par eux-mêmes.Voir [réponse] pour savoir comment fournir une réponse de qualité.- De l'avis


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...