open -a を使用してターミナルから Cocoa Emacs を開くことができません

open -a を使用してターミナルから Cocoa Emacs を開くことができません

このサイトからMac OS X 10.6.5を実行しているMacBook Airにemacsをインストールしましたhttp://emacsformacosx.com/。これは、以前は cocoa emacs と呼ばれていたものだと思います。これをアプリケーション フォルダにドラッグし、そこから実行すると正常に動作します。ターミナルから実行できるようにしたいです。グーグルで検索した後、open -a /Application/Emacs.app foo.txt(foo.txt は既存のファイルでした) を試しました。2 つの emacs ウィンドウが表示されました。1 つはウェルカム スクリーン、もう 1 つは foo.txt がロードされたものです。/Applications ディレクトリでいくつかのアプリケーションを試しましたが、このようには動作しないようです。自分のアカウント (管理者アカウント) を使用してインストールしたので、実行した後、ls -l所有/Application者とグループがこのフォルダ内の他のエントリと異なることに気付きました。所有者とグループを他のエントリと同様に root と wheel に再帰的に変更しましたが、効果はありませんでした。今おかしく見える唯一のことは、ls -l で拡張属性に関係する @ 文字が表示されることですが、これをどのように確認すればよいかわかりません。

次に何をチェックすればよいか、何か提案はありますか?

プログラムを実行するには open コマンドを使用するだけですか? シェル スクリプトを使用して、プログラムの動作をシミュレートできますか?

答え1

仕組みを誤解していますopen: コマンドで、 Emacs と txt ファイルの 2 つのファイルを開くようにopen /Application/Emacs.app foo.txt指示していますopenが、これらは 2 つの異なる操作です。最初に emacs が起動され、次にファイルfoo.txtのデフォルト プログラムが読み込まれます.txt。これは明らかに、あなたの場合は Emacs です。

Emacs がこのファイル タイプに対してデフォルトである限り、 を使用するだけでopen foo.txtEmacs でファイルが開きますが、デフォルトでない場合は を使用する必要がありますopen foo.txt -a /Applications/Emacs.app(スイッチは open に使用するアプリケーションを指示します)。または、次のようなオプション-aを使用して、それをパラメーターとして渡すこともできます。--argsopen /Applications/Emacs.app --args foo.txt

答え2

これは実際には少し奇妙です。私のインストール(homebrewで行った)では、open -a Emacs file.txtは正常に動作します...LaunchServicesデータベースを再構築する必要があるかもしれません。とにかく、実行可能ファイルを直接呼び出すことができるはずです。

/Applications/Emacs.app/Contents/MacOS/Emacs file.txt

関連情報