我想浏览IRB中的文件系统并进行快速更改以反映当前的工作目录,但我无法弄清楚如何在每个命令后进行提示更新。最终我想在日常工作中使用IRB更多,让bash溜走。我在我的.irbrc中试过这个:
require 'fileutils'
include FileUtils
IRB.conf[:PROMPT][:CUSTOM] = {
:PROMPT_N => "\e[1m:\e[m ",
:PROMPT_I => "\e[1m#{pwd} >\e[m ",
:PROMPT_S => "FOO",
:PROMPT_C => "\e[1m#{pwd} >\e[m ",
:RETURN => ""
}
IRB.conf[:PROMPT_MODE] = :CUSTOM
但IRB提示未更新:
julianmann@mango:~ > irb
/users/julianmann > puts pwd
/users/julianmann
/users/julianmann > cd 'dev'
/users/julianmann > puts pwd
/users/julianmann/dev
/users/julianmann >
我真的很喜欢改变的提示。
答案 0 :(得分:6)
这是一个快速破解工作目录。它有点脆弱,但它适用于ruby 1.8.7和1.9.2。
将提示字符串设置为以下内容:
"%N(%m):%03n:%i %~> ".tap {|s| def s.dup; gsub('%~', Dir.pwd); end }
irb本身不理解“%〜”指令,所以我用它来做替换。这个hack依赖于irb调用dup来生成提示的事实。
答案 1 :(得分:3)
答案 2 :(得分:0)
你必须像这样运行(别名)irb
irb --prompt custom
或者将IRB.conf[:PROMPT_MODE] = :CUSTOM
添加到.irbrc
P.S。这不是您问题的准确答案。但您可以尝试使用RUSH。
它没有当前工作目录的概念,但它很容易配置。
答案 3 :(得分:0)
虽然有点静态 但看看,它可能会帮助你 在Linux(Ubuntu 14.04)
只需按照一些简单的步骤
即可更改irb控制台的恼人提示打开终端
转到位置/home/leapfrog/.rvm/scripts
$ cd ~/.rvm/scripts
打开文件'irbrc.rb',使用超级用户权限覆盖
$ sudo gedit irbrc.rb
您可以看到这样的部分代码。用后面的代码替换前者
# Set up the prompt to be RVM specific.
#@prompt = {
# :PROMPT_I => "#{rvm_ruby_string} :%03n > ", # default prompt
# :PROMPT_S => "#{rvm_ruby_string} :%03n%l> ", # known continuation
# :PROMPT_C => "#{rvm_ruby_string} :%03n > ",
# :PROMPT_N => "#{rvm_ruby_string} :%03n?> ", # unknown continuation
# :RETURN => " => %s \n",
# :AUTO_INDENT => true
#}
@prompt = {
:PROMPT_I => "ROR: %03n > ", # default prompt
:PROMPT_S => "%03n%l> ", # known continuation
:PROMPT_C => "%03n > ",
:PROMPT_N => "%03n?> ", # unknown continuation
:RETURN => " O/P => %s \n",
:AUTO_INDENT => true
}
只需保存文件并重启irb控制台即可 进一步模式,您可以看到此链接 https://cbabhusal.wordpress.com/2014/12/22/ruby-rvm-change-prompt-of-irb/