¿Puedo hacer que un enlace simbólico (a una carpeta .app) en el directorio de Aplicaciones aparezca en Spotlight?

Usé brew para instalar MacVim y lo puse en/usr/local/Cellar/macvim/7.3-61/MacVim.app

Me gustaría poder ir a Spotlight y escribir MacVim para iniciar la aplicación. Intenté crear un enlace simbólico en el directorio de aplicaciones para /usr/local/Cellar/macvim/7.3-61/MacVim.app. Pero eso no parece aparecer en Spotlight. Configuré los bits ejecutables en el enlace simbólico. abrir MacVim.app desde la línea de comandos funciona. ¿Cómo puedo hacer que MacVim aparezca en la búsqueda de Spotlight?

Spotlight no mira dentro de las carpetas ocultas y aparentemente tampoco funciona para los alias. ¿Usas Spotlight para iniciar aplicaciones? Si es así, debo recomendar alfredapp.com . Yo lo uso y es genial. ¡Más rápido que el foco!
Gracias. Instalé Alfred y agregué la carpeta MacVim al ámbito de búsqueda. Estoy en mucho mejor forma.
Bien, lo descubrí. Si creo un alias para /usr/local/Cellar/macvim/7.3-61/MacVim.app, Spotlight lo indexará. Para obtener más información sobre los alias, visite switchingtomac.com/tutorials/creating-aliases-in-mac-os-x
¡Así que parece que Spotlight indexa alias! Jaja dulce. De todos modos, me alegro de que te haya gustado Alfred y es genial que hayas descubierto cómo agregar cosas a la atención también.
Yo también tuve este problema. La fórmula MacVim prescribe un enlace simbólico después de instalarlo en Cellar, y no me di cuenta de que era diferente de un alias. Con el alias, ahora Spotlight y Alfred funcionan.
¿Podría proporcionar más detalles sobre cómo crear el alias? Usando Lion, parece que no puedo apuntar el buscador a /usr/local/Cellar en absoluto, y no puedo entender cómo navegar por el sistema de archivos.
@Mojo esto justifica su propia pregunta, creo :)
¡Bienvenido a Ask Different! Si encontró una solución, publíquela como respuesta para que sea más fácil para otras personas con el mismo problema ver qué ayudó. Por favor, eche un vistazo a las preguntas frecuentes para obtener más información. Gracias.
Para aclarar el comentario de @m_sharps, parece que Spotlight indexará los alias, pero no los enlaces simbólicos ( ln -s).

Respuestas (11)

En el Finder, presione Ir CommandShiftGa la carpeta . Escribe /usr/local/Cellar/macvim/7.3-61/y presiona return. Seleccione el archivo (en realidad, una carpeta) MacVim.app Pulse CommandLpara Crear alias . Dependiendo de los permisos, es posible que se le solicite una contraseña de administrador aquí.

Presiona CommandNpara crear una nueva ventana del Finder . Presione CommandShiftApara ir a la carpeta Aplicaciones en esa ventana.

Arrastre el alias recién creado desde la ventana en la que se creó hasta la ventana que contiene la carpeta Aplicaciones . Cambie el nombre del alias para que ya no termine en "alias".

Seguí tus pasos y MacVim aparece en el centro de atención. Sin embargo, cuando intento iniciar MacVim desde Spotlight, aparece el mensaje de error "El elemento MacVim es utilizado por OS X y no se puede abrir".
Mmm. ¿Cómo suele iniciar MacVim cuando no usa Spotlight? ¿Te sale un mensaje de error entonces?
Tal vez Spotlight no pueda iniciarlo porque no tiene los permisos para acceder a /usr/local/ o algo así.
Hice que esto funcionara cambiando primero los permisos en /usr/local/Cellar con 'sudo chflags nohidden /usr/local/Cellar' (de hecho, hice esto para /usr/usr/local y /usr/local/Cellar). Luego usé Finder para crear un alias para MacVim (el que está en Cellar). Luego moví el alias a mi carpeta de Aplicaciones. Spotlight ahora encuentra MacVim (mira al final de su lista hasta que lo abras una vez).
También necesitaba hacer cambios de permisos adicionales, de forma predeterminada, parece que el enlace simbólico se creó sin ningún permiso de ejecución, y al agregarlos, el enlace simbólico apareció en Spotlight. Por extraño que parezca, los alias que creé y luego cambié el nombre a algo que no incluía la palabra "alias" al final tampoco fueron captados por Spotlight. Poner "alias" de nuevo al final del nombre del enlace simbólico lo arregló-
Su solución funcionó para mí cuando instalé kdiff3 usando 'brew install' desde la terminal y seguí sus instrucciones. Es una lástima que no funcionó al principio cuando hice todo desde la línea de comandos en lugar de hacerlo desde la GUI.
Esto debería funcionar por ahora, pero se interrumpirá cuando brew actualice MacVim. La forma de Zim debería persistir a través de las actualizaciones porque pasa por el enlace simbólico de homebrew a la aplicación.

El método de alias no funcionó para mí. Una mejor opción es usar Automator para crear una aplicación que ejecute un script de shell:ingrese la descripción de la imagen aquí

Además, vincular directamente a MacVim.app en el directorio Cellar, como sugieren algunas de las otras respuestas, lo vincula a una versión específica. Si brew actualiza MacVim, su enlace seguirá apuntando a la versión anterior. Más bien, deberías usar:

open /usr/local/opt/macvim/MacVim.app $@

ya que brew vincula automáticamente esta ubicación a la versión más reciente.

Esto funciono muy bien para mi. Guardo el archivo de Automator en iCloud para poder agregar convenientemente la aplicación en otras máquinas.

Esta parece ser la solución más robusta. ¿ $@Para qué sirve?
El $@ representa los argumentos pasados ​​al script. En este caso, todos los argumentos pasados ​​al script se reenvían a MacVim.app (es decir, nombres de archivo, opciones, etc.). Consulte esta respuesta sobre variables de shell especiales.
Ah gracias. Es muy difícil googlear $@. Sin embargo, ¿eso realmente hará algo en este caso, ya que el script solo se ejecuta al seleccionar la aplicación?
Sí, es útil, por ejemplo, si usa el Open withcomando en un archivo en Finder. La aplicación se iniciará con la ruta del archivo como primer argumento. O si configura MacVim como la aplicación predeterminada para un tipo de archivo, .txt por ejemplo, al hacer doble clic en un archivo .txt se iniciará MacVim con el archivo seleccionado como primer argumento.
Esto es genial, gracias. Creo que el argumento debería estar entre comillas dobles ("$@"), para manejar archivos con espacios en sus nombres. Puede ver el problema si ejecuta esto en la terminal: function foo { printf '%s\n' $@; }, luego foo "this is one file.txt".
Ver también la nota sobre open -aen otra respuesta

La forma en que resolví esto es usando un script de Shell y appify.

Por ejemplo, haga un script con un editor de texto que contenga

#!/bin/bash

/usr/local/Cellar/macvim/7.3-61/MacVim.app

Luego obtenga appify - http://git.abackstrom.com/appify.git

Ejecute appify en el script de shell y creará una aplicación que puede poner en /Aplicaciones que invocará a MacVim. Esto se mostrará en Spotlight.

Si va a hacerlo de esta manera, simplemente cree una aplicación de Automator para ejecutar el script.
Sí, @Slomojo, ese resultó ser el enfoque más fácil. Creé un shellscript que inicia la aplicación (en mi caso, libreoffice) y lo puse en /usr/bin. Luego usé Automator para simplemente invocar el script y guardé la aplicación creada por Automator en mi carpeta de Aplicaciones con el nombre que quería usar en Spotlight. Absurdo.
  1. Los enlaces simbólicos (ln -s) no me funcionaron bien, no parecía que Spotlight viera esto como una aplicación.

  2. Crear un alias de Finder (como lo describe Daniel) funcionó mejor con respecto al lanzamiento desde Finder, pero no funcionó cuando se usó Finder Open With... , el alias permanecería atenuado.

En particular, como se mencionó en otros comentarios aquí, también quería que MacVim estuviera disponible al usar Abrir con... desde Finder, pero con el enlace simbólico o el alias de Finder, MacVim permanecería atenuado.

Lo que funcionó para mí fue el simple script de Automator (como lo describió zim), con el comando "Ejecutar script de Shell". Lo único que tuve que hacer de manera diferente a lo que zim mostró en su respuesta fue agregar el parámetro -a para abrir :

open -a /usr/local/opt/macvim/MacVim.app $@

Sin -a, cuando se usa con "Abrir con...", MacVim se iniciaría, pero también el nombre de archivo del parámetro se abriría con la aplicación predeterminada que fuera, por lo que obtendría MacVim con el documento vacío Y TextEdit con el archivo que había seleccionado para abrir (en lugar de MacVim con mi archivo seleccionado abierto).

La secuencia de comandos del automatizador se puede copiar o crear un alias en la carpeta Aplicaciones. También cambié el ícono de mi secuencia de comandos de Automator al ícono de MacVim al copiar y pegar el ícono de las ventanas emergentes Obtener información del Finder.

Para mantener las cosas agradables y programables, puede usar osascriptpara ejecutar un pequeño AppleScript y crear su alias automáticamente.

osascript <<END

  set macvim to POSIX file "/usr/local/Cellar/macvim/7.3-61/MacVim.app" 
  set applications_folder to POSIX file "/Applications"

  tell application "Finder"
    make alias file to macvim at applications_folder
  end tell

END
Esto realmente funcionó, a diferencia de muchos one-liners de osascript que he encontrado en varios lugares.
Recomendaría mover la aplicación MacVim a Aplicaciones. O instalarlo a través de un barril de cerveza. Los alias se indexan en el centro de atención, pero se clasifican de manera irritantemente baja.
Gracias. He notado que es difícil hacer que Spotlight elija mi alias de MacVim.

Para los que usan homebrew para instalar macvim (totalmente recomendado)

Ejecute lo siguiente después de la instalación

brew linkapps macvim
Desafortunadamente, estos no aparecen en Spotlight.
pero puede crear un alias para el enlace de MacVim en el directorio /Aplicaciones, Spotlight selecciona el alias.
Desafortunadamente, 'brew linkapps' ya no existe y no se reemplaza.

Después de probar varias de las soluciones sugeridas, lo mejor que funcionó para mí fue copiar la aplicación de Homebrew Cellar al directorio de aplicaciones:

cp -r /usr/local/Cellar/macvim/7.3-66/MacVim.app /Aplicaciones/

Spotlight lo encontró al instante.

La mejor manera de hacerlo proviene del homebrew.

osascript -e 'tell application "Finder" to make alias file to POSIX file "/usr/local/Cellar/macvim/7.3-61/MacVim.app" at POSIX file "/Applications/"'

aquí está la referencia:

El simple acto de instalar homebrew me permitió crear un enlace simbólico a Sublime Text. Tal vez usted está necesitando más.

Instale homebrew aquí si tiene macOS

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

y luego desde la línea de comando (suponiendo que ST esté instalado)

ln -s "/Aplicaciones/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

Esto no responde directamente a la pregunta, sino que invierte el proceso de instalación para que MacOS encuentre MacVim como cualquier aplicación.

  1. Si ya instaló macvimcon brew, desinstálelo con brew uninstall macvim.
  2. Descarga MacVim e instala el .dmg como cualquier aplicación.
  3. Agregue un alias a su .bash_profile:
# Create a MacVim alias if it's installed as MacOS application
[ -x "$(command -v /Applications/MacVim.app/Contents/MacOS/Vim)" ] \
  && alias vim='/Applications/MacVim.app/Contents/MacOS/Vim'

Ahora, la GUI de MacVim funcionará como cualquier aplicación de MacOS (incluso con Spotlight), y la próxima vez que abra la terminal, el comando vimabrirá MacVim en la terminal.

Parece que podrías hacer lo siguiente desde la Terminal.

$ ln -s /usr/local/Cellar/macvim/7.3-61/MacVim.app /Applications

Es posible que deba usar sudopara colocar el enlace simbólico en el directorio /Aplicaciones.

Spotlight trata los enlaces simbólicos a "archivos del sistema" como archivos del sistema, por lo que no aparecen en los resultados normales. Sin embargo, los alias sí lo son.
¿Alguna forma de crear un alias de OS X mediante programación en Bash?
@MathiasBynens: vea mi respuesta, un poco de AppleScript lo hará.