Estoy enamorado de Spotlight. I ♥ Spotlight!
Con diferencia, Spotlight es la tecnología incorporada en Tiger que más echo de menos cuando me encuentro con cualquier otro ordenador. Y me fascina el hecho de que las aplicaciones crean plugins para poder buscar en su contenido.
En mi caso, llevo manejando toda la bibliografía de la tesis con BibDesk, el mejor programa gratuito que exista en plataforma alguna. (Papers es una alternativa genial de pago, pero aparte de no ser gratuita intenta parecerse demasiado a iTunes; además, me gustan las soluciones modulares, y prefiero la combinación BibDesk + Vista Previa + Skim.)
Como BibDesk crea índices Spotlight para todos tus artículos, puedes buscarlos desde cualquier parte (incluso un cuadro de diálogo de Abrir archivo)… y comprobar si tienes algún PDF para el cual aún no creaste una entrada.
Pero lo que ya me sulibeya (si reconoces la palabra, sé los años que ya no cumples ;-)) es que Spotlight no está limitado a buscar términos que aparezcan en cualquier parte de un documento, sino que puedes usar el Finder para construir consultas complejas, como todos los documentos BibDesk que tengan un determinado autor y palabra clave… y en Leopard se añade la posiblidad de construir grupos lógicos, esto es, los artículos de tal y tal palabra clave, o bien los de tal autor, todos juntos.
Claro que para conseguir la máxima potencia a veces necesitas la línea de comandos, y para eso existen los comandos mdls (para listar los metadatos de uno o varios archivos), y mdfind, para encontrar los archivos que contienen todas las palabras que vayan a continuación, o bien, si usamos los códigos que se pueden obtener con mdls, podemos usar paréntesis para agrupar cláusulas, y los operadores && para el Y lógico, y || para el O lógico. Y podemos leer el contenido de los archivos .savedSearch para averiguar cómo escribir clásulas complejas.
Pero si queremos hacer una búsqueda simple, como aquellos archivos que tengan un determinado autor y una fecha anterior a una dada, y queremos hacerlo desde la línea de comandos, hay dos problemas: recordar los códigos ( kMDItemAuthors, net_sourceforge_bibdesk_publicationdate), y convertir la fecha al formato de segundos desde el 01/01/1904. También se pueden Sin embargo, en Leopard hay otra alternativa, gracias a la opción interpret.
Con esa opción, podemos escribir (en inglés), el mismo tipo de consulta que habríamos hecho en el menú Spotlight. Por ejemplo, los artículos BibDesk que contengan Ochsenbein y que consulté ayer mismo los podríamos haber buscado como Ochsenbein clase:BibDesk fecha:ayer. Si lo hubiese querido buscar con mdfind, habría tenido que escribir:
mdfind ’(kMDItemKind = “BibDesk*”) && (kMDItemLastUsedDate >= $time.today(-1)) && (( * = “*Ochsenbein*”) || (kMDItemTextContent = “*Ochsenbein*”))’
Pero en Leopard, podríamos escribir:
mdfind -interpret Ochsenbein kind:BibDesk date:yesterday
Nótese que lo que sigue a -interpret es lo que habríamos escrito en el menú Spotlight… si el idioma de nuestro Mac OS X fuese inglés. Aún así, es muchísimo más fácil de recordar que las claves que hemos podido ver 😉
ps. Las funciones como $time.today(-1) y similares están documentadas en la página Spotlight Query Programming Guide > Query Expression Syntax. En concreto, una fecha textual se escribe como $time.iso("yyyymmddThhmmss"), donde yyyy son las cuatro cifras del año, mm las dos cifras (comenzando por 0) del mes, dd las dos cifras del día. La parte que sigue a T (incluida) es optativa, pero si aparece, hh corresponden a la hora en formato de 24h, mm a los minutos, y ss a los segundos. Por ejemplo, la fecha y hora de la celebración de mi cumpleaños este año fue $time.iso("20080523T213000"), pero si queremos sólo la fecha se puede escribir como $time.iso("20080523").
pps. Existe otra opción de mdfind, literal, que se usa si queremos buscar documentos que contengan alguna de las palabras clave de Spotlight, como kMDItemLastUsedDate, y no queremos que se interprete como una restricción al contenido de ese campo, sino que aparezca es cadena concreta. Así, después de haber leido esta página la búsqueda:
mdfind -literal kMDItemLastUsedDate
debe encontrar un archivo .webhistory con esta página, entre otras cosas.
Comentarios
3 respuestas a «I ♥ Spotlight… y BibDesk. Y más en Leopard»
Hola,
Me gustaría hacerte una pregunta relacionada con esto. Soy muy nueva trabajando con Bibdesk, de hecho acabo de intentar pasar mi bibliografía de refwoks, que era lo que usaba antes, a este nuevo programa. El problema es que las ñ y acentos de las citas me aparecen con símbolos…. sabes como puedo solucionar este problema??? o tendré que ir cambiándolas una a una…
muchas gracias!
Eso tiene pinta, Marta, de estar relacionado con la codificación del texto. BibDesk supone, por defecto, que es UTF-8, mientras que si tu archivo viene de Windows, lo más normal es que sea ISO-Latin-1.
Puedes usar TextEdit —o mejor aún, el hermano pequeño y gratuito de BBEdit, TextWrangler— para abrir el archivo como ISO-Latin-1, y guadar una copia como UTF-8, abriendo finalmente esa copia con BibDesk.
Muchas gracias! Ese era el problema… Ya está solucionada, muchas gracias! Un saludo