2012-01-17 10 views
0

rakeファイルを実行するには、vimのrubyインターフェイスのrakeモジュールを使いたいと思っています。 rakeタスクがshを使用してシェルコマンドを呼び出すと、出力は直接端末に送られます。$stdout$stderrをリダイレクトしようとしました。$stdout$stderrをリダイレクトしようとすると出力がリダイレクトされません。vimのrubyインターフェイスでrubyのシェルコマンドからエラーストリームをリダイレクトするにはどうすればよいですか?

今、vimでは、その出力はvimの端末には行かない - それはvimを起動した端末に行く!

stdout私はそれが欲しい場所にレーキを印刷するので、問題はありません。しかし、私がvimのrubyインターフェースからrakeモジュールを使用しようとすると、エラー出力がvim(これはgimを実行しているときに隠されていて、シェルのvimを実行しているときには厄介です)を呼び出した端末に行きたくないです。私はルビーやvimscriptを経由して読むことができる何かに入る(私はエラーメッセージを解析することができます)

だから、私はへの道を探しています:ルビーのシェルコールの

  • 読む\リダイレクトstderr、または
  • stderrを読み込み、それを呼び出すシェルに送信します。

可能でしょうか?

答えて

0

Rubyやレーキを呼び出すときにを使用すると、stderrが必要な場所に出力されます。コンソールに

ウィル出力誤差:

ruby -e "raise 'exception'" > output 

ウィル出力誤差アウトファイルがoutputと呼ばれる:

ruby -e "raise 'exception'" 2> output 

うまくいけば、このことができます!

+0

私はrakeにコマンドラインインターフェイスを使用しないことをお勧めします。代わりにAPIを使用したいので、vimのrubyインターフェイスで直接rakeによってスローされた例外をキャッチできます。 –

関連する問題