26 votos

QuickLook para archivos sin extensión o con una extensión desconocida

Soy programador, y encuentro que QuickLook de Mac es una función realmente genial para familiarizarse rápidamente con una base de código concreta. Básicamente, abro una ventana del Finder en el directorio donde se encuentran mis archivos de código, pulso la barra espaciadora (para evocar QuickLook), y luego hago flechas hacia arriba/abajo/izquierda/derecha por todos los archivos y me desplazo dentro de QuickLook según sea necesario.

El problema que me encuentro son los archivos sin extensión y los archivos con extensión desconocida. ¿Cómo puedo convencer al Mac para que intente QuickLook estos archivos como archivos de texto (que por lo general son). Además, es muy bonito cómo QuickLook colorea automáticamente el código basándose en el tipo de código que cree que es. ¿Cómo puedo ampliar los tipos de archivos de código que reconoce el Mac? Por ejemplo, quiero ser capaz de QuickLook el código en un archivo *.html.erb o un archivo *.js.erb.

19voto

Stefano Puntos 171

Actualización 2021 Ene

Si estás ejecutando MacOS Big Sur (11.1) y no puedes obtener vistas previas de QuickLook de ciertos archivos aunque hayas instalado QLStephen y otros plugins, esto es lo que me funcionó.

Antecedentes

En MacOS, a cada archivo se le asigna un UTI . Los UTIs se utilizan para identificar los tipos de archivos (son los tipos que se ven en el Kind en el Finder o en la columna Kind entrada en el General sección del Get Info ventana). Por ejemplo, un .txt (un archivo de "texto plano") tiene la siguiente IU: public.plain-text .

Para comprobar cuál es la UTI de un archivo concreto, puede ejecutar

mdls -name kMDItemContentType ~/my-file.ext

donde ~/my-file.ext es la ruta del archivo.

QuickLook comprueba la UTI de un archivo para elegir el generador de QuickLook que se utilizará para la visualización. Los generadores QL que se suministran con MacOS pueden encontrarse en /System/Library/QuickLook/ .

Los generadores QL tienen el .qlgenerator y puede ver su contenido haciendo clic con el botón derecho del ratón sobre ellos y seleccionando Show Package Contents . Dentro de la carpeta Contents allí un archivo llamado Info.plist . Este archivo enumera las UTIs con las que se utilizará el generador.

Por lo tanto, el Info.plist de la Text.qlgenerator enumerará, entre otros, el public.plain-text UTI. Cualquier archivo que tenga esa UTI será previsualizado usando Text.qlgenerator .

Los generadores encontrados en /System/Library/QuickLook/ están bloqueados, lo que significa que (en principio) no se pueden editar.

Aquí es donde entran los plugins de QuickLook que se pueden encontrar en Internet, como QLStephen. Estos plugins se instalan en ~/Library/QuickLook (tenga en cuenta que esta ruta comienza con ~/ , lo que significa que es su usuario Library y no /System/Library/ ) y ampliar las capacidades de QuickLook. En otras palabras, proporcionan al sistema nuevos generadores que funcionan con UTIs no cubiertos por los propios generadores del sistema, o los amplían.

Problema

Cuando se reasigna la aplicación con la que se abre un tipo de archivo (por ejemplo, Info > Abrir con > [app] > Cambiar todo`), la aplicación puede asignar a ese tipo de archivo una UTI que no es la predeterminada, lo que significa que QuickLook no reconocerá la UTI y no asignará ningún generador (y sólo verá un icono de archivo en lugar del contenido del mismo).

Por ejemplo, el plugin QLColorCode debería previsualizar el contenido de LaTeX .tex archivos, pero en mi caso no fue así. Esto se debe a que seleccioné Sublime Text como la aplicación que abre .tex y ST ha asignado un UTI que es diferente del UTI utilizado en QLColorCode para .tex archivos.

Solución

La solución al problema es simplemente hacer saber al plugin de QL que también debería funcionar con estas IU "no predeterminadas".

Para ello, basta con editar el archivo Info.plist del plugin en ~/Library/QuickLook ( no intente editar los generadores del sistema en /System/Library/QuickLook ).

Más concretamente, primero hay que localizar las siguientes líneas en Info.plist (para abrir y editar este archivo, haga clic con el botón derecho del ratón y seleccione TextEdit ):

...
<key>LSItemContentTypes</key>
  <array>
    <string>public.source-code</string>
    ...
  </array>
...

Luego, hay que añadir las IU "no estándar" en la matriz, así:

...
<key>LSItemContentTypes</key>
  <array>
    <string>public.source-code</string>
    ...
    <string>dyn.ah62d4rv4ge80g5dx</string>
    <string>dyn.ah62d4rv4ge81e5pe</string>
  </array>
...

Como se mencionó anteriormente, para obtener la UTI de un archivo en particular, haga:

mdls -name kMDItemContentType ~/my-file.ext

En la salida, verá algo así:

kMDItemContentType = "dyn.ah62d4rv4ge80g5dx"

La cadena entre comillas dobles es la UTI de ~./my-file .

Una vez que haya añadido las IU, sólo tiene que guardar el Info.plist y cerrarlo.

Ahora QuickLook debería funcionar con el generador elegido para los archivos cuyas IU se han añadido en Info.plist .

Para estar seguro, puedes ejecutar lo siguiente para restablecer QL y su caché:

qlmanage -r
qlmanage -r cache

Fin

0 votos

Gran aportación: has arrojado algo de luz sobre el tema. En cuanto a mí, he establecido Sublime Text como aplicación por defecto para la mayoría de los archivos de origen, sin embargo, los mdls muestran que todavía tienen sus viejos UTI. No consigo que QLStephen, QLMarkdown O QLColorCode previsualicen nada. He ejecutado xattr -d, qlmanage -r, qlmanage -r cache, reiniciado Finder y reiniciado varias veces...

3 votos

Lo he arreglado. La solución fue eliminar Glance.app. Después de eso, cada. Simple. Quicklook. Preview funciona de maravilla...

0 votos

Gran respuesta. Pregunta/solicitud de mejora --- ¿cómo evitar que los plugins "personalizados" rompan la funcionalidad de OK anulando el comportamiento del sistema operativo, o al menos causar un "disparo en cadena" de manera que si mi ~/Library/QuickLook/custom.ql falla al renderizar algo, siga intentando utilizar cualquier generador QuickLook asignado por el sistema para el mismo archivo? Encuentro que muchos de los plugins gratuitos están rotos para muchos archivos.

11voto

Shawn Puntos 8120

Echa un vistazo a la Plugin QuickLook Stephen Abre casi todo lo que le lanzo (siempre que esté basado en texto).

0 votos

No funciona para *.yml, *.cs, *.csproj, *.config, *.vim, *.css, .viminfo- estos son todos los que he comprobado hasta ahora en los últimos 10 minutos

0voto

RMilk Puntos 21

Fantásticos detalles, muy apreciados. Algunos elementos añadidos que me encontré:

  • Si el ~/Library/Quicklook/ no existe, debe crearlo manualmente.

  • En mi caso, quería ampliar las vistas previas de texto para .bat y .log . Así que tuve que crear los subdirectorios para el generador de texto Text.qlgenerator . Cuando miro en /System/Library/QuickLook/ Veo directorios que no tengo en mi directorio personal. Estos comandos crean los subdirectorios de Quickview si no los tengo, y luego copian el archivo del sistema en mi directorio principal:

    mkdir -p ~/Library/Quicklook/Text.qlgenerator/Contents/

    cp /System/Library/Quicklook/Text.qlgenerator/Info.plist ~/Library/Quicklook/Text.qlgenerator/Contents/Info.plist

  • A continuación, determino la IU con el comando proporcionado:

mdls -name kMDItemContentType ~/my_file.bat

kMDItemContentType = "dyn.ah62d4rv4ge80e2py"
  • Y luego editar el archivo plist para añadir la UTI dyn.ah62d4rv4ge80e2py a mi archivo plist en ~/Library/Quicklook/Text.qlgenerator/Contents/Info.plist

  • Finalmente, puedo comprobar que el quicklook ha funcionado correctamente con el qlmanage -p opción. Esto imprime alguna información de depuración y luego abre la ventana de vista previa de QuickLook en este archivo:

qlmanage -p ~/my_file.bat

0 votos

Buena respuesta, aunque he notado un problema con el código de copia. /System/Library/Quicklook/Text.qlgenerator/Info.plist NO existe. Debería ser /System/Library/Quicklook/Text.qlgenerator/Contents/Info.pli‌​st . (nótese la adición de "Contenido")

0voto

tubedogg Puntos 6827

La forma más sencilla que he encontrado para conseguirlo consiste en instalar el plugin QLColorCode . Este es un gran plugin que incluye el resaltado de sintaxis del código fuente para un número de idiomas.

Una vez instalado, es muy fácil añadir soporte para UTIs (Uniform Type Indicator) adicionales. Obtenga el UTI para su archivo en particular abriendo el Terminal, o su aplicación de terminal preferida, y utilizando este comando:

mdls -name kMDItemContentType /path/to/file.ext

El resultado debería ser algo así:

kMDItemContentType = "dyn.ah62d4rv4ge81s7dg"

A continuación, navegue en el Finder hasta ~/Library/QuickLook. Haga clic con el botón derecho en QLColorCode.qlgenerator y elija Mostrar contenido del paquete. Abra Contents/Info.plist en un editor de texto. Encuentre el siguiente código:

            <key>LSItemContentTypes</key>
            <array>
                <string>public.source-code</string>
                ...
            </array>

En una nueva línea después de <string>public.source-code</string> , añada <string>dyn.yourUTIhere</string> para cada nueva IU que quiera añadir.

Guarde el archivo y ejecute estos comandos en Terminal o en su aplicación de terminal preferida:

qlmanage -r
qlmanage -r cache

Los archivos con la IU que ha añadido deberían abrirse ahora en QuickLook.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X