Sublime Il testo come fuzzy cerca file system per Mac OS X

4

Attualmente sto utilizzando le capacità di navigazione del filesystem di Alfred. È davvero fantastico, ma a volte voglio che la ricerca fuzzy corrisponda non solo al nome del file ma al percorso completo.

es. Voglio trovare un file pdf con un nome file molto comune (ad esempio proposta.pdf). E ho una struttura di directory come questa:

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

Sarebbe bello se potessi digitare dro/meg/propos per arrivare al file di proposta del megacorp. La risposta potrebbe essere il plug-in Alfred o qualche configurazione, ma accetterò qualsiasi soluzione che mi permetta di navigare rapidamente a questo file ed eseguire alcune azioni (ad esempio, rivelare in Finder o qualcosa del genere). "La funzionalità Ricerca-come-tu-type " è molto importante.

UPD Hai appena trovato un domanda simile . Sembra che la funzione di corrispondenza completa del percorso sia mancante perché mdfind sta solo cercando il nome del file e tutti gli strumenti lo stanno utilizzando internamente.

    
posta vbo 18.07.2013 - 22:34
fonte

5 risposte

1

Esiste un attributo kMDItemPath, ma non può essere utilizzato nelle query. Puoi anche scaricare l'output di mdfind:

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

La corrispondenza con kMDItemFSName è spesso molto più lenta:

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

Ho provato a creare un filtro di script come questo in Alfred:

q="{query}"

shopt -s nocasematch

amp() {
  local o=${1//&/&}
  o=${o//</&lt;}
  printf %s "${o//>/&gt;}"
}

output='<?xml version="1.0"?>
<items>
'

while IFS= read -r l; do
  path=$(amp "$l")
  output+="<item>
<arg>$path</arg>
<title>$(amp "${l##*/}")</title>
<subtitle>$path</subtitle>
<icon type=\"fileicon\">$path</icon>
</item>
"
done < <(if [[ $q =~ .+/.+ ]]; then
  dir=${q%/*}
  mdfind "name:${q##*/}" | while IFS= read -r l; do
    [[ ${l%/*} = */${dir//\/*/}* ]] && echo "$l"
  done
else
  mdfind "kind:folder name:$q"
fi | head -n20)

echo "$output</items>
</xml>"

Non sono riuscito a farlo funzionare in modo affidabile, e spesso sono occorsi più secondi per aggiornare i risultati.

    
risposta data 22.07.2013 - 15:00
fonte
0

Easy Find, gratuito, da DevonTechnologies ti consente di cercare file, cartelle o entrambi, in qualsiasi cosa, da singolo cartelle o l'intero disco - così come utilizzare criteri facilmente selezionabili: fuzzy, invisibile, nome, contenuto ecc.

Difficile stimare quante centinaia di ore mi hanno salvato nel corso degli anni mentre Apple ha fatto il futz con Spotlight e Ricerca salvata. Trova, quasi istantaneamente, qualsiasi .

    
risposta data 20.07.2013 - 00:25
fonte
0

Aggiungi questo in ~ / .bash_profile (puoi sostituire cd con open )

export PATH=$PATH:~/bin

cds(){
  cd "$(find . -type d -maxdepth 3 | selecta)"
}

E aggiungi selecta dal link in ~ / bin

Ora quando lanci un terminale puoi digitare cd e iniziare a cercare!

File AppleScript per aprire iTerm e inserire i CD automaticamente: cds.applescript

activate application "iTerm"
tell application "System Events" to keystroke "t" using command down
tell application "iTerm" to tell session -1 of current terminal to write text "cds"

puoi testare lo script usando il comando osascript cds.applescript Potresti anche impostare una scorciatoia da tastiera per chiamarla: link

    
risposta data 17.04.2015 - 00:07
fonte
0

Puoi provare Findspot . Findspot supporta queste funzionalità

  1. Ricerca fuzzy come Control-P del testo di Sublime
  2. Ricerca completa del percorso
  3. Cerca mentre digiti

Ecco uno screenshot di Findspot quando si utilizza il tuo esempio:

In realtà, puoi saltare le barre e otterrai lo stesso risultato.

    
risposta data 11.11.2015 - 02:24
fonte
-1

Perché hai bisogno di una ricerca fuzzy sotto i riflettori, se il terminale è qui? apri dro [tab] meg [tab] prop [tab]

anche tu puoi configurare il tuo .bash_profile su ulteriori.

    
risposta data 18.03.2017 - 21:29
fonte

Leggi altre domande sui tag