草庐IT

ruby - 如何将 TextMate 中的一行发送到在终端窗口中运行的 irb 进程?

我经常在打开TextMate窗口的情况下进行编码,并在与其相邻的终端窗口中执行irb进程。我希望能够在执行以下操作的TextMate中按下按键序列:复制当前选择,如果没有,则复制当前行。将其粘贴到运行irb的最顶层终端窗口中。按enter以便在irb窗口中执行代码行。我在用R编写代码时使用了这种交互式开发方式,发现它非常方便。我很确定emacs和SLIME也可以让你像这样工作。Ruby和TextMate有可能吗? 最佳答案 您必须创建捆绑命令和键盘快捷键才能执行此操作。在TextMate中转到Bundles->BundleEdito

ruby - 如何在 irb 中创建和存储方法和类?

我正在学习Ruby。我知道Ruby深受Smalltalk的影响。SmalltalkIDE提供基于图像的持久性,这意味着可以从正在运行的图像中添加方法和类。在Ruby的irb中是否可以实现同样的功能? 最佳答案 不,那只是smalltalk。但是你可以使用maglevruby取回smalltalkVM。您可以使用pry及其edit命令编辑磁盘上的代码,shell负责重新加载。但是您不能保存session,只能保存您写入磁盘的代码。 关于ruby-如何在irb中创建和存储方法和类?,我们在S

emacs 中的 Ruby 模式 : how can I choose which version of ruby is ran when running irb?

我安装了多个版本的ruby​​,当我在emacs上运行“run-ruby”时,它会启动与ruby​​1.8.7关联的irb,而我想使用ruby​​1.9.3的irb。有人知道如何配置吗?谢谢! 最佳答案 另请查看rvm.el.如果你要切换,即使只是一次,安装RubyVersionManager(rvm)和切换很容易,在emacs中也同样容易。一石二鸟。 关于emacs中的Ruby模式:howcanIchoosewhichversionofrubyisranwhenrunningirb?,

ruby - 在 irb 中抑制 Enumerable::each 的输出

Enumerable::each的返回值是调用each的对象。当我在irb中时,这真的很烦人,因为我得到了巨大的输出。是否可以在irb中抑制Enumerable::each的返回值?比如这个[1,2].each{|u|puts"hey"}输出这个>>[1,2].each{|u|puts"hey"}heyhey=>[1,2]我想去掉最后一行 最佳答案 这很简单。只需在Ruby中您不想看到其返回值的语句/表达式的末尾添加一个分号(;)并添加nil.制作:[1,2].each{|u|puts"hey"};nil但请注意,没有理由压制irb

在 Windows 上使用 gitbash shell 的 ruby​​ irb - 不能使用箭头键修改命令输入?

当我使用railsconsole时,我的gitbashshell允许我使用向上箭头来调用命令,并使用左/右箭头来修改我输入的文本当我运行irb时,shell会忽略退格键和方向键我不确定为什么箭头键在Rails控制台的shell中可以正常工作,但在运行irb时却不行? 最佳答案 正如我刚刚在相关Backspaceandarrowkeysaren'tworkinginIRB(GitBashconsole)onwindowsmachine中所写:用--noreadline运行irb为我解决了这个问题:irb--noreadline

ruby-on-rails - 在 irb 中导航命令行的键盘快捷键

我看过截屏视频,其中用户正在运行irb,当他们写文本时,他们会跳到行的开头/结尾和单词的开头/结尾。用于执行此操作的击键是什么?它取决于正在使用的shell吗? 最佳答案 Ctrl+A=>MovetobeginningoflineCtrl+E=>Movetoendofline这些是readline命令这是一个cheatsheet一般情况下您可能会发现有帮助 关于ruby-on-rails-在irb中导航命令行的键盘快捷键,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - 语法错误 : (irb):26: both block arg and actual block given

我有这个问题=f.select(:city,Country.where(:country_code=>"es").collect(&:cities){|p|[p.city,p.id]},{:include_blank=>'Chooseyourcity'})问题是我收到以下错误SyntaxError:(irb):26:bothblockargandactualblockgiven据我所知,我通过包含collect(&:cities)然后声明该block做错了什么。有没有一种方法可以用同一个查询来完成这两个任务? 最佳答案 Countr

ruby - irb 中 quit 和 exit 的区别?

用quit和exit退出irb有什么区别吗?例如,这些功能是否相同:irb(main):001:0>quit和irb(main):001:0>exit 最佳答案 好像是。method(:quit).owner#=>IRB::ExtendCommandBundlemethod(:exit).owner#=>IRB::ExtendCommandBundlemethod(:exit).source_location#=>["/usr/local/lib/ruby/2.2.0/irb/extend-command.rb",28]method

ruby - 在 irb (ruby) 中截断 #inspect 输出

我想截断irb中的#inspect输出(大输出必须裁剪到MAX_LEN)。目前,我重写了所有特定对象的:inspect、:to_s方法。还有其他解决办法吗?更改$stdout?其他? 最佳答案 要获得干净的解决方案,geminstallhirb。hirb如果irb的返回值太长,则页面返回值。如果你想要monkeypatchirb:moduleIRBclassIrbdefoutput_value@context.last_value.to_s.slice(0,MAX_LEN)endendend我不推荐这样做,因为它是一种hack,并且

ruby - 为什么我在 irb 1.9.3 中从 method_missing 得到 "stack level too deep"?

场景:-bash-3.2$irb-fruby-1.9.3-p0:001>@v={}=>{}ruby-1.9.3-p0:002>defmethod_missing(sym,*args);@v[sym];end=>nilruby-1.9.3-p0:003>a(irb):2:stackleveltoodeep(SystemStackError)-bash-3.2$我使用-f运行以避免加载任何irbrc内容。我希望在输入a时得到nil。这是怎么回事,有解决方法吗?我尝试用begin/rescueExceptionblock包装a但那没有做任何事情。1.9.2也会发生这种情况,但1.9.1不会。