Ruby 当嵌入到正在运行的脚本中时,如何自定义IRB的提示?
我试过:Ruby 当嵌入到正在运行的脚本中时,如何自定义IRB的提示?,ruby,prompt,irb,Ruby,Prompt,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(A
@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)
配置分配:
@CONF[:PROMPT_MODE] = :SIMPLE
需要在创建Irb对象之前提交:
我不确定其他设置需要多早完成,但总的来说,最好尽快完成。下面的代码有这些修改
#!/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)
很抱歉,我没有更早地看到这一点。使用.irbrc怎么样,或者您不想更改默认设置?此外,根据您的需要,在:MAIN_上下文工作后,您可能需要设置提示配置。我想为我的应用程序创建一个irb外壳。由于安装后的原因,我不想使用.irbrc。如果我不必配置.irbrc,使用起来会更简单。我不明白为什么@conf[:PROMPT\u MODE]=:SIMPLE不工作,因为自动缩进正在工作。区别是什么?RVM会设置自己的提示,但可能是在代码运行后(不确定)。
#!/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)