質問

IRBは、ファイルにコマンド履歴を書くことができますが、それだけでこれを実行したときに、あなたのirbセッションは終了します。

私より頻繁に私のコマンド履歴を書き出したい:。できるだけ頻繁に(シェルの歴史のような)すべてのコマンドのように、それはそう頻繁にする必要はありません。

このため.irbrc設定はありますか?それとも私がIRBソースをハックする必要があります...

役に立ちましたか?

解決

きれいな溶液を用いて、

IRB多くのA時間にハッキングしたので、幸運。代わりに私は、IRBの代替を RIPL にお勧めします。デフォルトでは、それがよりインテリジェント歴史を保存する(すなわち、あなたは突然コントロール-Dと一緒に終了した場合でも)。

:あなたは、すべてのコマンドの後に歴史を書きたい場合は、プラグインで拡張することが組み込まれているので、

は、それがRIPLで簡単です

# add to your ~/.riplrc
module Ripl::ImmediateHistory
  # write to history after every eval
  def eval_input(input)
    super
    File.open(history_file, 'a') {|f| f.puts input }
  end

  # disable writing to history when ripl exits
  def write_history; end
end
Ripl::Shell.send :include, Ripl::ImmediateHistory

他のヒント

ここから: http://blog.nicksieger.com/articles / 2006/04/23 /微調整-IRBする

module Readline
  module History
    LOG = "#{ENV['HOME']}/.irb-history"

    def self.write_log(line)
      File.open(LOG, 'ab') {|f| f << "#{line}
"}
    end

    def self.start_session_log
      write_log("
# session start: #{Time.now}

")
      at_exit { write_log("
# session stop: #{Time.now}
") }
    end
  end

  alias :old_readline :readline
  def readline(*args)
    ln = old_readline(*args)
    begin
      History.write_log(ln)
    rescue
    end
    ln
  end
end

Readline::History.start_session_log
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top