Bug #6950

ruby-mode: comint-previous-input does not work

Added by Seong-Kook Shin over 1 year ago. Updated over 1 year ago.

[ruby-core:47367]
Status:Third Party's Issue
Priority:Normal
Assignee:-
Category:-
Target version:1.9.3
ruby -v:ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] Backport:

Description

On RVM irb with ruby 1.9.3-p194, the prompt is somewhat different from irb with ruby 1.8.x

On ruby 1.8, the prompt looks like:

irb(main):001:0> _

On ruby 1.9.x, the prompt looks like:

ruby-1.9.2-p180 :001 > _

Since misc/inf-ruby.el has regular expressions that only parse "irb(...)>" prompt,
M-p or M-n command do not work properly.

Solution:

  1. replace the initial value of 'inferior-ruby-first-prompt-pattern' and 'inferior-ruby-prompt-pattern' to following:

(defvar inferior-ruby-first-prompt-pattern "\(?:irb(.*)[0-9:]+0\|ruby[-0-9.a-z]+ *:[0-9]+ *\)> *"
"first prompt regex pattern of ruby interpreter.")

(defvar inferior-ruby-prompt-pattern "\(?:\(irb(.)[0-9:]+[>\"'] *\)+\|ruby[-0-9.a-z]+ *:[0-9]+[ \"']> *\)"
"prompt regex pattern of ruby interpreter.")

History

#1 Updated by Yui NARUSE over 1 year ago

  • Status changed from Open to Third Party's Issue

report it to emacs

#2 Updated by Eric Hodel over 1 year ago

=begin
Additionally, perhaps your problem is your .irbrc? My irb prompt is unchanged since 1.8.7.

1.9.2-p290:

irb(main):001:0> RUBYVERSION
=> "1.9.2"
irb(main):002:0> RUBY
PATCHLEVEL
=> 290

1.9.3-p194:

irb(main):001:0> [RUBYVERSION, RUBYPATCHLEVEL]
=> ["1.9.3", 194]

2.0.0-r36819

irb(main):001:0> [RUBYVERSION, RUBYREVISION]
=> ["2.0.0", 36819]

=end

#3 Updated by Alex Young over 1 year ago

On 30/08/12 01:57, drbrain (Eric Hodel) wrote:

Issue #6950 has been updated by drbrain (Eric Hodel).

=begin
Additionally, perhaps your problem is your .irbrc? My irb prompt is unchanged since 1.8.7.

1.9.2-p290:

irb(main):001:0> RUBYVERSION
=> "1.9.2"
irb(main):002:0> RUBY
PATCHLEVEL
=> 290

1.9.3-p194:

irb(main):001:0> [RUBYVERSION, RUBYPATCHLEVEL]
=> ["1.9.3", 194]

2.0.0-r36819

irb(main):001:0> [RUBYVERSION, RUBYREVISION]
=> ["2.0.0", 36819]

=end

This is RVM at work: https://rvm.io/workflow/irbrc/

$ rvm use system
Now using system ruby.

$ irb
irb(main):001:0>

$ rvm use 1.8.7-p302
Using /home/zander/.rvm/gems/ruby-1.8.7-p302

$ irb
1.8.7 :001 >

$ rvm use 1.9.3
Using /home/zander/.rvm/gems/ruby-1.9.3-p194

$ irb
1.9.3p194 :001 >

--
Alex


Bug #6950: ruby-mode: comint-previous-input does not work
https://bugs.ruby-lang.org/issues/6950#change-29104

Author: cinsk (Seong-Kook Shin)
Status: Third Party's Issue
Priority: Normal
Assignee:
Category:
Target version: 1.9.3
ruby -v: ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]

On RVM irb with ruby 1.9.3-p194, the prompt is somewhat different from irb with ruby 1.8.x

On ruby 1.8, the prompt looks like:

irb(main):001:0> _

On ruby 1.9.x, the prompt looks like:

ruby-1.9.2-p180 :001> _

Since misc/inf-ruby.el has regular expressions that only parse "irb(...)>" prompt,
M-p or M-n command do not work properly.

Solution:

  1. replace the initial value of 'inferior-ruby-first-prompt-pattern' and 'inferior-ruby-prompt-pattern' to following:

(defvar inferior-ruby-first-prompt-pattern "\(?:irb(.*)[0-9:]+0\|ruby[-0-9.a-z]+ *:[0-9]+ *\)> *"
"first prompt regex pattern of ruby interpreter.")

(defvar inferior-ruby-prompt-pattern "\(?:\(irb(.)[0-9:]+[>\"'] *\)+\|ruby[-0-9.a-z]+ *:[0-9]+[ \"']> *\)"
"prompt regex pattern of ruby interpreter.")

#4 Updated by Alex Young over 1 year ago

On 30/08/12 15:54, Alex Young wrote:

This is RVM at work: https://rvm.io/workflow/irbrc/

Oh, I should add that my .irbrc is empty here.

--
Alex

#5 Updated by Seong-Kook Shin over 1 year ago

Many thanks. I'll modify the .irbrc right away.

Also available in: Atom PDF