2012-01-21 6 views
1

私が試してみました: 実行中のスクリプトに埋め込まれている場合、IRBのプロンプトをどのようにカスタマイズできますか?

@CONF[:PROMPT_MODE] = :SIMPLE 
を、それは私のプロンプトを変更しません。私はrvmとruby 1.9.2 Linuxを使用しています。

#!/usr/bin/env ruby 
# encoding: utf-8 
require 'irb' 
module IRB # :nodoc: 
    def self.start_session(binding) 
    unless @__initialized 
     args = ARGV 
     ARGV.replace(ARGV.dup) 
     IRB.setup(nil) 
     ARGV.replace(args) 
     @__initialized = true 
    end 
    workspace = WorkSpace.new(binding) 
    irb = Irb.new(workspace) 
    @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC] 
    @CONF[:MAIN_CONTEXT] = irb.context 
    @CONF[:AUTO_INDENT] = true 
    @CONF[:PROMPT_MODE] = :SIMPLE 
    catch(:IRB_EXIT) do 
     irb.eval_input 
    end 
end 
end 
IRB.start_session(binding) 
+0

'.irbrc'はどうしますか、あるいはデフォルトを変更したくないですか? –

+0

また、あなたのニーズに応じて、[この回答](http://stackoverflow.com/a/4987732/438992)は、 ':MAIN_CONTEXT'が動作した後にプロンプ​​ト設定を行うようになるかもしれません。 –

+0

私のアプリ用のirbシェルを作成したいと思います。インストール後の理由から.irbrcを使用しないことをお勧めします。私が.irbrcを設定する必要がなければ、使用する方が簡単です。 – user1162323

答えて

0

設定の割り当て:来て

@CONF[:PROMPT_MODE] = :SIMPLE 

ニーズIrbのオブジェクト作成前に:

irb = Irb.new(workspace) 

を私は他の設定を行う必要がありどのように早期に確認していません、一般的にはできるだけ早くこれを行う方が良いです。以下のコードには、これらの変更があります。

#!/usr/bin/env rub 
# encoding: utf-8 
require 'irb' 
module IRB # :nodoc: 
    def self.start_session(binding) 
     unless @__initialized 
      args = ARGV 
      ARGV.replace(ARGV.dup) 
      IRB.setup(nil) 
      ARGV.replace(args) 
      @__initialized = true 
     end 
     @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC] 
     @CONF[:AUTO_INDENT] = true 
     @CONF[:PROMPT_MODE] = :SIMPLE 
     IRB.run_config 
     workspace = WorkSpace.new(binding) 
     irb = Irb.new(workspace) 
     @CONF[:MAIN_CONTEXT] = irb.context 
     catch(:IRB_EXIT) do 
      irb.eval_input 
     end 
    end 
end 
IRB.start_session(binding) 

申し訳ありませんが、私はこれをもっと早く見ませんでした。

関連する問題