Öffnen Sie eine Datei immer in einem bestimmten Programm

Ich habe ein Problem mit dem Erzwingen, dass eine Datei eines bestimmten Typs immer mit einem bestimmten Programm geöffnet wird. In diesem Fall handelt es sich um .indd(Adobe InDesign) Dateien. Ich habe Adobe CS6 installiert und auch Adobe InDesign 5.5. Ich möchte .inddDateien immer mit InDesign 5.5 öffnen.

Ich habe versucht zu verwenden Get Info > Open with: > InDesign 5.5 > Change All..., aber es wechselt immer automatisch zurück zu CS6, unmittelbar nachdem ich auf geklickt habe Change All....

Gibt es vielleicht eine Möglichkeit, dies im Terminal zu erzwingen?

Obwohl es oft keine Kontrolle über Adobe gibt, können Sie versuchen, die Berechtigungen zum Lesen/Schreiben von Benutzern in allen relevanten Verzeichnissen mit BatChmod oder ähnlichem zu ändern, und es erneut mit Change All versuchen.

Antworten (2)

Wenn es Ihnen nichts ausmacht, jedes Mal InDesign 5.5 anzugeben, sollte diese Befehlszeile funktionieren:

open -a 'InDesign 5.5' myfile.indd

Wenn Sie dies häufig tun, können Sie es in ein Shell-Skript oder eine Bash-Funktion wie einschließen

function indd() { open -a 'InDesign 5.5' "$@" ; }

Dann kannst du einfach sagen

indd myfile.indd

Das ist ganz gut, sollte aber idealerweise etwas benutzerfreundlicher sein. Gibt es eine Möglichkeit, einen Doppelklick auf eine INDD-Datei abzufangen und diese Aktion an das erste Bash-Skript zu senden?

Sie könnten versuchen, zu bearbeiten ~/Library/Preferences/com.apple.LaunchServices.plist:

defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentTag=indd;LSHandlerContentTagClass=public.filename-extension;LSHandlerRoleAll=com.adobe.InDesign;}'

Das Übernehmen der Änderungen erfordert einen Neustart (Abmelden und erneutes Anmelden reicht nicht aus).

Die Neuerstellung der LaunchServices-Datenbank funktioniert möglicherweise auch, setzt jedoch auch andere im Finder festgelegte Standardanwendungen zurück.

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user