2011-02-20 7 views
2

Mac OS XのGUIでファイルを開く方法はありますかopenシェルコマンド?私は関数を使ってopenシェルコマンドを実行できることを知っていますが、これを避けたいと思います。他のすべてが失敗した場合は、もちろん、私はいつもsystem()を使用することに戻ります。Mac OS XでRubyを使ってファイルを開くことができます。好ましくはsystem()はありません

+0

私はrb-appscriptを使用するソリューションが動作しません。どのアプリケーションを起動するかわからないからです。私が見た唯一の選択肢は、System()から開いて実行することによって提案するオプションです。 – Augusto

+0

@アウグスト:申し訳ありません、私はそれをします、ありがとう! –

+0

@Bavarious:Plain Ruby。 –

答えて

3

system()メソッドを使用してopenコマンドラインユーティリティを呼び出すことが唯一のもっともらしい解決策であることがわかりました。

0

openは、Macのアプリケーションが開くことができるファイルのリストを使用します。それは厄介な、または完全に間違っている可能性がありますので、私は-aフラグを使用していくつかのヒントを与えることは安全だと思うか、まれにうまく動作しないワープロでソースを開くことになります。

MacVim、TextMate、BBEditなどのソースファイルを開く場合は、それぞれコマンドラインツールmvimmateまたはbbeditを使用できます。 IRBからこれらのファイルはすべて私の~/.bashrcファイルを開き、ターミナルから切り離されるので、結果はすぐに返されます。 Rubyのバックティックを使用して、またはそれは同等%x{}です:

>> `mate ~/.bashrc` #=> "" 
>> `mvim ~/.bashrc` #=> "" 
>> `bbedit ~/.bashrc` #=> "" 
あなたはアプリはショートカットを提供しない限り、呼び出すために右のバイナリを見つけなければならないでしょうが、あまりにものアプリを開くには Open3のいずれかの方法を使用してに見ることができ

MacVim、TextMate、BBEditなどがあります。

Macのopen -a application file_to_be_openedコマンドは、バックティックまたは%r{}を使用して呼び出すことができます。上記のコマンドを使用しての帰結は、次のようになります。

`open -a TextMate ~/.bashrc` 

MacVimは、* nixの世界から来ているVimのコードベースに基づいています。これは、端末から切り離されないようにするために、-fフラグを持っているので、エディタが終了して終了するのを待ってからコードを続行することができます。これは私のLinuxマシンでSVNにリビジョンを送る前に、ファイルの差分やコミットメッセージの作成に役立ちます。これはIRBでこれを行うように機能します:

`mvim -f ~/.bashrc` 
関連する問題