IRB不将点(.)视为分词符

Dmi*_*nko 9 ruby irb

我在OS X上使用irb,当我按左/右选项(或META + B/F)时,光标移动到下一个/上一个单词.但irb并不会将点(.)字符视为单词分隔符.

我试图将(.)添加到.irbrc,所以它现在看起来像这样:

Readline.basic_word_break_characters = " \t\n`><=.;|&{("
Run Code Online (Sandbox Code Playgroud)

但那没有效果.

我使用的是Mountain Lion红宝石,以及手动编译的1.9.3,两种版本的irb表现相似.此外,dot在bash和pry中被视为分隔符,因此系统范围的设置可能很好.

任何帮助,赞赏,

谢谢

Dmi*_*nko 5

好的,看来问题是我的系统中根本没有安装libreadline。安装最新的readline并重新编译ruby解决了该问题。

我已经使用过readline 6.2 from ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz,它是使用basic安装的./configure && make && make install

我已经使用ruby-build和以下选项安装了ruby 1.9.3-p194

sudo ruby-build 1.9.3-p194 /opt/ruby-1.9.3-p194 CONFIGURE_OPTS="--with-readline-dir=/usr/local"
Run Code Online (Sandbox Code Playgroud)

此后,IRB开始将点,下划线和其他字符作为单词分隔符。

同样,正常工作的readline应该返回如下内容:

Readline::VERSION => "6.2"     
Run Code Online (Sandbox Code Playgroud)

行为不端的人说:

Readline::VERSION => "EditLine wrapper"
Run Code Online (Sandbox Code Playgroud)