Kann ich einen symbolischen Link (zu einem .app-Ordner) im Anwendungsverzeichnis erstellen, der im Spotlight angezeigt wird?

Ich habe brew verwendet, um MacVim zu installieren, und es hat es eingefügt/usr/local/Cellar/macvim/7.3-61/MacVim.app

Ich möchte in der Lage sein, zu Spotlight zu gehen und MacVim einzugeben, um die App zu starten. Ich habe versucht, im Anwendungsverzeichnis einen Symlink zu erstellen /usr/local/Cellar/macvim/7.3-61/MacVim.app. Aber das scheint nicht in Spotlight zu erscheinen. Ich setze die ausführbaren Bits auf dem Symlink. Öffnen Sie MacVim.app über die Befehlszeile funktioniert. Wie kann ich MacVim dazu bringen, in der Spotlight-Suche angezeigt zu werden?

Spotlight schaut nicht in versteckte Ordner und funktioniert anscheinend auch nicht für Aliase. Verwenden Sie Spotlight zum Starten von Apps? Wenn ja, muss ich alfredapp.com empfehlen . Ich benutze es und es ist großartig. Schneller als Scheinwerfer!
Danke. Ich habe Alfred installiert und den MacVim-Ordner zum Suchbereich hinzugefügt. Ich bin in viel besserer Verfassung.
Okay, ich habe es herausgefunden. Wenn ich einen Alias ​​für /usr/local/Cellar/macvim/7.3-61/MacVim.app erstelle, wird Spotlight ihn indizieren. Weitere Informationen zu Aliasen finden Sie unter switchtomac.com/tutorials/creating-aliases-in-mac-os-x
Es scheint also, dass Spotlight Aliase indiziert! Hach süß. Wie auch immer, ich bin froh, dass dir Alfred gefallen hat und es ist großartig, dass du herausgefunden hast, wie man auch Dinge ins Rampenlicht rückt.
Ich hatte dieses Problem auch. Die MacVim-Formel schreibt nach der Installation im Cellar einen Symlink vor, und mir war nicht klar, dass sich das von einem Alias ​​unterscheidet. Mit dem Alias ​​funktionieren jetzt sowohl Spotlight als auch Alfred.
Können Sie näher erläutern, wie Sie den Alias ​​erstellen? Mit Lion kann ich den Finder anscheinend überhaupt nicht auf /usr/local/Cellar richten und kann nicht herausfinden, wie das Dateisystem durchsucht wird.
@Mojo, das rechtfertigt eine eigene Frage, denke ich :)
Willkommen bei Ask Different! Wenn Sie eine Lösung gefunden haben, posten Sie sie bitte als Antwort, damit andere mit demselben Problem leichter sehen können, was geholfen hat. Bitte werfen Sie einen Blick auf die FAQs für weitere Informationen. Danke.
Um den Kommentar von @m_sharps zu verdeutlichen: Es scheint, dass Spotlight Aliase indiziert, aber keine symbolischen Links ( ln -s).

Antworten (11)

Drücken Sie im Finder CommandShiftGfür Gehe zum Ordner . Geben Sie ein /usr/local/Cellar/macvim/7.3-61/und drücken Sie return. Wählen Sie die Datei (eigentlich ein Ordner) MacVim.app Drücken Sie CommandLfür Make Alias ​​. Je nach Berechtigungen werden Sie hier möglicherweise zur Eingabe eines Administratorkennworts aufgefordert.

Drücken Sie CommandN, um ein neues Finder-Fenster zu erstellen . Drücken Sie , um in diesem Fenster CommandShiftAzum Anwendungsordner zu wechseln.

Ziehen Sie den neu erstellten Alias ​​aus dem Fenster, in dem er erstellt wurde, in das Fenster mit dem Ordner „Programme“. Benennen Sie den Alias ​​um, sodass er nicht mehr auf „alias“ endet.

Ich bin Ihren Schritten gefolgt und MacVim taucht im Rampenlicht auf. Wenn ich jedoch versuche, MacVim über Spotlight zu starten, erhalte ich eine Fehlermeldung „Item MacVim is used by OS X and can’t be opens“.
Hmmm. Wie starten Sie normalerweise MacVim, wenn Sie Spotlight nicht verwenden? Bekommst du dann eine Fehlermeldung?
Vielleicht kann Spotlight es nicht starten, weil es nicht die Berechtigung hat, auf /usr/local/ oder so etwas zuzugreifen.
Ich habe dies zum Laufen gebracht, indem ich zuerst die Berechtigungen für /usr/local/Cellar mit 'sudo chflags nohidden /usr/local/Cellar' geändert habe (ich habe dies tatsächlich für /usr /usr/local und /usr/local/Cellar getan). Dann habe ich den Finder verwendet, um einen Alias ​​für MacVim (den in Cellar) zu erstellen. Dann habe ich den Alias ​​in meinen Anwendungsordner verschoben. Spotlight findet jetzt MacVim (sehen Sie am Ende der Liste nach, bis Sie es einmal öffnen).
Ich musste auch zusätzliche Berechtigungsänderungen vornehmen, standardmäßig scheint der Symlink überhaupt ohne Ausführungsberechtigungen erstellt worden zu sein, durch Hinzufügen dieser wurde der Symlink im Rampenlicht angezeigt. Seltsamerweise wurden Aliase, die ich erstellt und dann in etwas umbenannt habe, das am Ende nicht das Wort "Alias" enthielt, auch nicht von Spotlight aufgegriffen. Das Zurücksetzen von "Alias" am Ende des Symlink-Namens hat das Problem behoben.
Ihre Lösung hat bei mir funktioniert, als ich kdiff3 mit 'brew install' vom Terminal installiert und Ihren Anweisungen gefolgt bin. Schade, dass es anfangs nicht funktioniert hat, als ich alles über die Befehlszeile statt über die GUI gemacht habe.
Dies sollte vorerst funktionieren, aber brechen, wenn Brew MacVim aktualisiert. Der Weg von zim sollte durch Updates bestehen bleiben, da er über den symbolischen Link von Homebrew zur App geht.

Die Alias-Methode hat bei mir nicht funktioniert. Eine bessere Option ist die Verwendung von Automator zum Erstellen einer Anwendung, die ein Shell-Skript ausführt:Geben Sie hier die Bildbeschreibung ein

Wenn Sie direkt auf die MacVim.app im Cellar-Verzeichnis verlinken, wie einige der anderen Antworten vorschlagen, binden Sie Sie an eine bestimmte Version. Wenn brew MacVim aktualisiert, wird Ihr Link immer noch auf die alte Version verweisen. Stattdessen sollten Sie verwenden:

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

da dieser Speicherort automatisch von brew mit der neuesten Version verknüpft wird.

Das hat bei mir super funktioniert. Ich speichere die Automator-Datei in iCloud, damit ich die App bequem auf anderen Computern hinzufügen kann.

Dies scheint die robusteste Lösung zu sein. Wofür ist das $@?
Das $@ repräsentiert die an das Skript übergebenen Argumente. In diesem Fall werden alle an das Skript übergebenen Argumente an die MacVim.app weitergeleitet (dh Dateinamen, Optionen usw.). Siehe diese Antwort zu speziellen Shell-Variablen.
Ah danke. Es ist wirklich schwer zu googlen $@. Wird das in diesem Fall aber tatsächlich etwas bringen, da das Skript nur durch die Auswahl der App ausgeführt wird?
Ja, es ist zum Beispiel hilfreich, wenn Sie den Open withBefehl auf eine Datei im Finder anwenden. Die App wird mit dem Dateipfad als erstes Argument gestartet. Oder wenn Sie MacVim als Standardanwendung für einen Dateityp festlegen, z. B. .txt, dann startet ein Doppelklick auf eine .txt-Datei MacVim mit der ausgewählten Datei als erstem Argument.
Das ist großartig, danke - ich denke, das Argument sollte jedoch in doppelten Anführungszeichen ("$@") stehen, um Dateien mit Leerzeichen in ihren Namen zu behandeln. Sie können das Problem sehen, wenn Sie dies im Terminal ausführen: function foo { printf '%s\n' $@; }, dann foo "this is one file.txt".
Siehe auch den Hinweis open -ain einer anderen Antwort

Ich habe dies gelöst, indem ich ein Shell-Skript und appify verwende.

Erstellen Sie beispielsweise ein Skript mit einem Texteditor, der Folgendes enthält

#!/bin/bash

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

Dann erhalten Sie appify - http://git.abackstrom.com/appify.git

Führen Sie appify auf dem Shell-Skript aus und es wird eine Anwendung erstellt, die Sie in /Applications einfügen können, die MacVim aufruft. Dies wird im Rampenlicht erscheinen.

Wenn Sie dies auf diese Weise tun möchten, erstellen Sie einfach eine Automator-App, um das Skript auszuführen.
Ja @Slomojo, das hat sich als der einfachste Ansatz erwiesen. Ich habe ein Shellscript erstellt, das die App (in meinem Fall libreoffice) startet, und es in /usr/bin abgelegt. Dann habe ich Automator verwendet, um einfach das Skript aufzurufen, und die von Automator erstellte App in meinem Anwendungsordner mit dem Namen gespeichert, den ich in Spotlight verwenden wollte. Absurd.
  1. Symbolische Links (ln -s) funktionierten bei mir nicht gut, es schien nicht, dass Spotlight dies als Anwendung sehen würde.

  2. Das Erstellen eines Finder-Alias ​​(wie von Daniel beschrieben) funktionierte besser beim Starten aus dem Finder, aber nicht, wenn Finder Open With... verwendet wurde, blieb der Alias ​​ausgegraut.

Insbesondere, wie in anderen Kommentaren hier erwähnt, wollte ich auch, dass MacVim verfügbar ist, wenn Öffnen mit ... aus dem Finder verwendet wird, aber entweder mit dem symbolischen Link oder dem Finder-Alias ​​blieb MacVim ausgegraut.

Was für mich funktioniert hat, war das einfache Automator-Skript (wie zim beschrieben) mit dem Befehl "Run Shell Script". Das einzige, was ich anders machen musste als das, was zim in seiner Antwort gezeigt hat, ist das Hinzufügen des Parameters -a zum Öffnen :

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

Ohne das -a würde MacVim bei Verwendung mit "Öffnen mit ..." starten, aber auch der Parameter filename würde mit seiner Standardanwendung öffnen - also würde ich sowohl MacVim mit leerem Dokument als auch TextEdit mit der Datei I erhalten zum Öffnen ausgewählt hatte (anstatt MacVim mit meiner ausgewählten geöffneten Datei).

Das Automator-Skript kann in den Anwendungsordner kopiert oder mit einem Alias ​​versehen werden. Ich habe auch das Symbol meines Automator-Skripts in das Symbol von MacVim geändert, indem ich das Symbol aus den Get-Info-Popups des Finders kopiert und eingefügt habe.

Um die Dinge schön und skriptfähig zu halten, können Sie verwenden osascript, um ein kleines AppleScript auszuführen und Ihren Alias ​​automatisch zu erstellen.

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
Das hat tatsächlich funktioniert, im Gegensatz zu vielen Osascript-Einzeilern, die ich an verschiedenen Stellen gefunden habe.
Ich würde empfehlen, die MacVim-App tatsächlich in Anwendungen zu verschieben. Oder installieren Sie es über Brew Cask. Aliasse werden im Rampenlicht indiziert, aber sie werden ärgerlich niedrig eingestuft.
Danke. Mir ist aufgefallen, dass es schwierig ist, Spotlight dazu zu bringen, meinen MacVim-Alias ​​auszuwählen.

Für diejenigen, die Homebrew verwenden, um Macvim zu installieren (absolut empfehlenswert)

Führen Sie nach der Installation Folgendes aus

brew linkapps macvim
Leider werden diese nicht im Spotlight angezeigt.
Sie können jedoch einen Alias ​​für den MacVim-Link im /Applications-Verzeichnis erstellen, der Alias ​​wird von Spotlight übernommen.
Leider existiert 'brew linkapps' nicht mehr und wird auch nicht ersetzt.

Nachdem ich mehrere der vorgeschlagenen Lösungen ausprobiert hatte, war das Beste, was für mich funktionierte, die App aus dem Homebrew-Keller in das Anwendungsverzeichnis zu kopieren:

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

Spotlight hat es sofort gefunden.

Der beste Weg, es zu tun, kommt von Homebrew selbst

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/"'

hier ist die referenz:

Durch die einfache Installation von Homebrew konnte ich einen Symlink zu Sublime Text erstellen. Vielleicht brauchen Sie mehr.

Installiere Homebrew hier, wenn du macOS hast

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

und dann von der Befehlszeile aus (vorausgesetzt, ST ist installiert)

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

Dies beantwortet die Frage nicht direkt, sondern kehrt den Installationsvorgang um, sodass MacOS MacVim wie jede App findet.

  1. Wenn Sie Brew bereits installiert macvimhaben, deinstallieren Sie es mit brew uninstall macvim.
  2. Laden Sie MacVim herunter und installieren Sie die .dmg-Datei wie jede andere Anwendung.
  3. Fügen Sie Ihrem .bash_profile einen Alias ​​hinzu:
# 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'

Jetzt funktioniert die MacVim-GUI wie jede MacOS-App (einschließlich Spotlight), und wenn Sie das Terminal das nächste Mal öffnen, öffnet der Befehl vimstattdessen MacVim im Terminal.

Klingt so, als könnten Sie vom Terminal aus Folgendes tun.

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

Möglicherweise müssen Sie verwenden sudo, um den symbolischen Link im Verzeichnis /Applications abzulegen.

Spotlight behandelt symbolische Links zu "Systemdateien" als Systemdateien, sodass sie in normalen Ergebnissen nicht aufgeführt werden. Aliase sind aber.
Gibt es eine Möglichkeit, einen OS X-Alias ​​programmgesteuert in Bash zu erstellen?
@MathiasBynens - siehe meine Antwort, ein kleines AppleScript wird es tun.