Mengapa saya tidak bisa menggunakan .app bundel yang disinkronkan ke / Aplikasi sebagai default di dialog 'terbuka dengan'?

5

Saya telah menginstal emacs dengan homebrew , dengan --cocoabendera, yang membuat homebrew membuat bundel App di /usr/local/Cellar/emacs/<version>/Emacs.app. Saya telah mengaitkan bundel .app menjadi /Applications/, untuk membuatnya mudah dibuka. Masalahnya adalah ketika saya mencoba mengatur asosiasi file untuk file, saya tidak dapat menetapkan Emacs.app sebagai default (tombol Add diklik):

Tidak dapat memilih terbuka dengan emacs

Sekarang saya bisa menyalin atau memindahkan bundel .app ke dalam /Applications/, tapi itu akan mengharuskan saya untuk menyalinnya lagi setiap kali emacs diperbarui melalui homebrew. Apakah ada cara lain untuk menyelesaikan ini?

oyvindio
sumber

Jawaban:

6

Saya tidak tahu mengapa, tapi saya telah menemukan jawabannya bahwa jika saya membuat symlink ke direktori Contents, maka asosiasi bekerja dengan baik.

Itulah yang saya lakukan sebagai berikut di jendela terminal, menggunakan folder Aplikasi pribadi saya sebagai contoh:

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

Sesuatu tentang menempatkan symlink di dalam Emacs.app membuat bundel itu dikenali.

Jeff Putsch
sumber
4

Aneh. Saya baru saja menginstal emacs melalui brew dan secara otomatis memperbarui dialog "buka dengan" untuk memasukkan Emacs.app; Tetapi Anda harus dapat melakukan hal berikut: Langsung setelah membuka dialog "pilih aplikasi", tekan "/" untuk mendapatkan jendela "buka folder". Masukkan jalur berikut:

/usr/local/Cellar/emacs/

dan dari sana arahkan ke Emacs.app (pada versi saat ini ini seharusnya /usr/local/Cellar/emacs/23.2/Emacs.app) dan pilih sebagai aplikasi default.

========

Bisakah Anda menjalankan perintah berikut untuk melihat apakah Emacs terdaftar di DB LaunchServices Anda?

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

Asmus
sumber
Saya sudah menyarankan itu. Tapi itu tidak akan berfungsi lagi ketika emacs diperbarui (versi ada di jalurnya)
Loïc Wolff
Apakah ini benar-benar berfungsi jika Anda menavigasi ke jalur emacs yang sebenarnya? Apakah Anda yakin itu hanya symlink / alias yang tidak berfungsi?
zevlag
Ya, Anda bisa mencoba ini misalnya dengan menghubungkan TextEdit: ln -s /Applications/TextEdit.app /Applications/Test.app - sekarang Anda tidak dapat memilihnya lagi di dialog "pilih aplikasi". Silakan lihat jawaban asli saya di atas untuk ide lain mengenai LaunchServices.
Asmus
Sepertinya itu adalah: pastie.org/pastes/1529411 ( setidaknya target dari tautan), bersama dengan beberapa bundel Emacs.app lainnya yang telah saya hapus di beberapa titik. Apa artinya ini?
oyvindio
Perintah LaunchServices yang Anda jalankan menunjukkan semua varian Emacs yang "diketahui" Mac Anda dari waktu ke waktu, bahkan jika Anda menghapusnya. Anda mungkin ingin membangun kembali LaunchServices DB Anda dan kemudian (setelah membuka Emacs untuk "pertama" kalinya) itu harus segera tersedia dalam dialog "buka dengan" - tetapi ini mungkin membuat Mac Anda melupakan tugas file kustom lain yang Anda buat. waktu. Atau Anda dapat mencoba solusi pertama yang saya (dan Loïc) sarankan: menugaskan Emacs dari / usr / local… dalam dialog "open with"
Asmus
1

Jika itu bukan sesuatu yang sering Anda lakukan, Anda dapat menavigasi ke tempat Emacs.app benar-benar dan menetapkannya dari sana.

Apakah Anda mencoba mengubah tarik-turun "Aktifkan: Aplikasi yang Disarankan"? Saya percaya ada opsi "Semua aplikasi". Mungkin yang ini akan membiarkan Anda memilih alias Anda.

Anda bilang Anda menyinkronkan .app. Apakah Anda menggunakan ln -s? Jika ya, apakah Anda mencoba menggunakan alias?

-
Saya tidak tahu homebrew dengan sangat baik, tetapi sepertinya Anda dapat memperluas homebrew dengan perintah eksternal .

Cobalah untuk melihat apakah Anda bisa mendapatkan update .appfile yang dan cpuntuk /Applications.

Loïc Wolff
sumber
Ya, saya menggunakan ln -sdari garis perintah. Saya mencoba menggunakan alias juga, tetapi itu tidak berhasil. Memilih "Semua aplikasi" tidak membantu, karena saya sudah dapat memilih Emacs.app, saya tidak bisa mengklik 'Tambah'. Saya kira saya bisa menavigasi ke bundel Emacs.app yang "asli", tetapi masalahnya adalah bahwa nomor versi adalah bagian dari jalur, sehingga itu akan berubah ketika emacs diperbarui ...
oyvindio
@oyvindio menambahkan ide baru
Loïc Wolff
1

Solusi saya adalah membuat symlink /usr/local/Cellarin /Applications. Kemudian, Anda dapat menemukan emacs.app yang perlu Anda gunakan dengan dialog "Buka dengan" (dalam /Applications/Cellar).

Atau, Anda dapat menggunakan RCDefault (aplikasi freeware) untuk mengkonfigurasi asosiasi ekstensi file.

phabulosa
sumber
0

Jalur yang tepat ke aplikasi Anda seharusnya tidak masalah. Setelah Anda membuka aplikasi dan menutupnya sekali, itu harus menambahkannya ke database LaunchServices Anda.

Cobalah membangun kembali basis data LaunchServices Anda dengan memasukkan perintah terminal berikut:

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

Setelah melakukan ini, buka MacVim. Maka harus mengisi opsi Open With .... Perhatikan bahwa MacVim tidak secara otomatis mengaitkan dirinya dengan banyak jenis file (tidak seperti, katakanlah, BBEdit, yang muncul sebagai opsi default untuk hampir semua jenis file), hanya teks, kode, dan file jenis html cenderung

Nik
sumber