Búsqueda sublime de texto como sistema de archivos difuso para Mac OS X

4

Actualmente estoy usando las capacidades de navegación del sistema de archivos de Alfred. Es bastante impresionante, pero a veces quiero que la búsqueda difusa coincida no solo con el nombre de archivo sino con la ruta completa.

Por ejemplo, Quiero encontrar un archivo pdf con un nombre de archivo muy común (por ejemplo, proposal.pdf). Y tengo una estructura de directorios como esta:

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

Sería bueno si pudiera escribir dro/meg/propos para acceder al archivo de propuestas de megacorp. La respuesta puede ser el complemento de Alfred o alguna configuración, pero aceptaré cualquier solución que me permita navegar rápidamente a este archivo y realizar alguna acción (por ejemplo, revelar en Finder o algo así). La funcionalidad " Búsqueda a medida que escribe " es muy importante.

UPD Encontré un pregunta similar . Parece que falta la función de coincidencia de ruta completa porque mdfind solo busca el nombre del archivo y todas las herramientas lo usan internamente.

    
pregunta vbo 18.07.2013 - 22:34

5 respuestas

1

Hay un atributo kMDItemPath, pero no se puede usar en las consultas. Puede grep la salida de mdfind aunque:

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

La coincidencia con kMDItemFSName suele ser mucho más lenta:

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

Intenté crear un filtro de script como este en 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>"

Sin embargo, no pude hacer que funcionara de manera confiable, y a menudo me tomó varios segundos actualizar los resultados.

    
respondido por el user495470 22.07.2013 - 15:00
0

Easy Find, gratis, de DevonTechnologies le permite buscar archivos, carpetas o ambos, en cualquier cosa desde un solo carpetas o todo el disco, además de utilizar criterios fácilmente seleccionados: borroso, invisible, nombre, contenido, etc.

Es difícil estimar la cantidad de cientos de horas que me ha ahorrado a lo largo de los años, mientras que Apple fracasa con Spotlight y la búsqueda guardada. Encuentra, casi instantáneamente, cualquier cosa .

    
respondido por el Zo219 20.07.2013 - 00:25
0

Agregue esto en ~ / .bash_profile (puede reemplazar cd con open )

export PATH=$PATH:~/bin

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

Y agregue selecta desde enlace en ~ / bin

Ahora, cuando inicie un terminal, puede escribir cds y comenzar a buscar.

Archivo AppleScript para abrir iTerm e ingresar cds automáticamente: 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"

puedes probar el script usando el comando osascript cds.applescript Incluso podría configurar un método abreviado de teclado para llamarlo: enlace

    
respondido por el Rivenfall 17.04.2015 - 00:07
0

Puede probar Findspot . Findspot es compatible con estas características

  1. Búsqueda difusa como Control-P de Sublime Text
  2. Búsqueda de ruta completa
  3. Busca mientras escribes

Aquí hay una captura de pantalla de Findspot cuando usas tu ejemplo:

En realidad, puedes omitir las barras y aún obtendrás el mismo resultado.

    
respondido por el Byron 11.11.2015 - 02:24
-1

¿Por qué necesitas una búsqueda difusa en Spotlight, si el terminal está aquí? abrir dro [pestaña] meg [pestaña] prop [pestaña]

también puede configurar su .bash_profile a adicionales.

    
respondido por el Влад Цыганов 18.03.2017 - 21:29

Lea otras preguntas en las etiquetas