Pytanie:
Dlaczego nie mogę domyślnie używać pakietów .app dowiązanych symbolicznie do / Applications w oknie dialogowym „Otwórz za pomocą”?
oyvindio
2011-02-04 16:03:35 UTC
view on stackexchange narkive permalink

Zainstalowałem emacsa z homebrew, z flagą --cocoa , która sprawia, że ​​homebrew tworzy pakiet .app w / usr / local / Cellar / emacs / <version> / Emacs.app . Podałem symboliczny pakiet .app do / Applications / , aby ułatwić jego otwieranie. Problem polega na tym, że kiedy próbuję ustawić skojarzenia plików dla plików, nie mogę ustawić Emacs.app jako domyślnego (przycisk Dodaj jest wyszarzony):

Unable to select open with emacs

Teraz mogłem po prostu skopiować lub przenieść pakiet .app do / Applications / , ale wymagałoby to ponownego skopiowania go za każdym razem, gdy emacs jest aktualizowany przez homebrew. Czy jest jakiś inny sposób rozwiązania tego problemu?

Pięć odpowiedzi:
Jeff Putsch
2012-09-11 08:27:47 UTC
view on stackexchange narkive permalink

Nie wiem dlaczego, ale doszedłem do wniosku, że jeśli utworzę dowiązanie symboliczne do katalogu Contents, to skojarzenia będą działać dobrze.

Czyli wykonuję następujące czynności w oknie terminala, na przykładzie mojego osobistego folderu Aplikacje:

 % mkdir ~ / Applications / Emacs.app% ln -s /usr/local/Cellar/emacs/23.2/Emacs.app/Contents ~ / Applications / Emacs.app  

Coś związanego z umieszczeniem dowiązania symbolicznego wewnątrz Emacs.app powoduje, że pakiet jest rozpoznawany.

Asmus
2011-02-04 18:22:51 UTC
view on stackexchange narkive permalink

Dziwne. Właśnie zainstalowałem emacsa przez brew i automatycznie zaktualizowałem okno dialogowe „otwórz za pomocą”, aby zawierało Emacs.app; ale powinieneś być w stanie wykonać następujące czynności: Bezpośrednio po otwarciu okna dialogowego „wybierz aplikację” naciśnij „/”, aby uzyskać okno „przejdź do folderu”. Wprowadź następującą ścieżkę:

  / usr / local / Cellar / emacs /  

i stamtąd przejdź do Emacs.app (w obecnej wersji to powinna być /usr/local/Cellar/emacs/23.2/Emacs.app) i wybrać ją jako aplikację domyślną.

========

Czy mógłbyś uruchomić poniższe polecenie, aby sprawdzić, czy Emacs jest zarejestrowany w Twojej bazie danych LaunchServices?

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -dump | grep Emacs

Już to zasugerowałem. Ale to już nie będzie działać, gdy emacs zostanie zaktualizowany (wersja jest na ścieżce)
Czy to faktycznie działa, jeśli przejdziesz do prawdziwej ścieżki emacsa? Czy na pewno nie działa tylko łącze symboliczne / alias?
Tak, możesz spróbować tego na przykład przez dowiązanie symboliczne TextEdit: ln -s /Applications/TextEdit.app /Applications/Test.app - teraz nie możesz już tego wybrać w oknie dialogowym „Wybierz aplikację”. Zobacz moją oryginalną odpowiedź powyżej dla innego pomysłu dotyczącego LaunchServices.
Wygląda na to, że jest: http://pastie.org/pastes/1529411 (przynajmniej cel linku), wraz z kilkoma innymi pakietami Emacs.app, które w pewnym momencie usunąłem. Co to znaczy?
To polecenie LaunchServices, które uruchomiłeś, pokazało wszystkie warianty Emacsa, które Twój Mac „poznał” na przestrzeni czasu, nawet jeśli je usunąłeś. Możesz albo zechcieć przebudować swoją bazę danych LaunchServices, a następnie (po otwarciu Emacsa po raz pierwszy) powinna stać się dostępna natychmiast w oknie dialogowym „Otwórz za pomocą” - ale może to pozwolić Twojemu Macowi zapomnieć o innych przypisanych plikach niestandardowych czas. Możesz też wypróbować pierwsze rozwiązanie, które zaproponowałem (i Loïc): przypisanie Emacsa z / usr / local… w oknie dialogowym „Otwórz za pomocą”
Loïc Wolff
2011-02-04 16:10:05 UTC
view on stackexchange narkive permalink

Jeśli nie jest to coś, co często robisz, możesz przejść do miejsca, w którym naprawdę znajduje się Emacs.app i przypisać go stamtąd.

Czy próbowałeś zmienić menu rozwijane „Włącz: zalecane aplikacje”? Uważam, że istnieje opcja „Wszystkie aplikacje”. Może ten pozwoli ci wybrać twój alias.

Powiedziałeś, że masz dowiązanie symboliczne do .app. Czy użyłeś ln -s ? Jeśli tak, czy zamiast tego próbowałeś użyć aliasu?

-
Nie znam dobrze homebrew , ale wygląda na to, że możesz przedłużyć homebrew z zewnętrznymi poleceniami .

Spróbuj sprawdzić, czy możesz pobrać zaktualizowany plik .app i cp to / Applications .

Tak, użyłem `ln -s` z wiersza poleceń. Próbowałem również użyć aliasu, ale to też nie zadziałało. Wybór „Wszystkie aplikacje” nie pomaga, ponieważ mogę już wybrać Emacs.app, po prostu nie mogę kliknąć „Dodaj”. Myślę, że mógłbym przejść do "prawdziwego" pakietu Emacs.app, ale chodzi o to, że numer wersji jest częścią ścieżki, więc zmieniłby się, gdy emacs zostanie zaktualizowany ...
@oyvindio dodał nowy pomysł
phabulosa
2011-11-21 14:48:54 UTC
view on stackexchange narkive permalink

Moje rozwiązanie polega na utworzeniu dowiązania symbolicznego / usr / local / Cellar w / Applications . Następnie możesz znaleźć emacs.app, którego potrzebujesz, w oknie dialogowym „Otwórz za pomocą” (w /Applications/Cellar).

Alternatywnie możesz użyć RCDefault (bezpłatna aplikacja), aby skonfigurować powiązanie rozszerzenia pliku.

Nik
2011-12-03 21:35:38 UTC
view on stackexchange narkive permalink

Dokładne ścieżki do aplikacji nie powinny mieć znaczenia. Po otwarciu i zamknięciu aplikacji należy dodać ją do bazy danych LaunchServices.

Spróbuj odbudować bazę danych LaunchServices, wprowadzając następujące polecenie terminala:

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

Po wykonaniu tej czynności otwórz MacVim. Powinien następnie wypełnić opcje Otwórz za pomocą ... Zauważ, że MacVim nie kojarzy się automatycznie z wieloma typami plików (w przeciwieństwie do, powiedzmy, BBEdit, który pojawia się jako opcja domyślna dla prawie każdego typu pliku), tylko pliki tekstowe, kodowe i HTML mają tendencję do tego



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...