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

时间:2012-10-10 15:26:03

标签: ruby irb

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

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

Readline.basic_word_break_characters = " \t\n`><=.;|&{("

但这没有效果。

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

任何帮助表示赞赏,

由于

2 个答案:

答案 0 :(得分:5)

好吧,似乎问题是我的系统中根本没有安装 libreadline 。安装最新的readline并重新编译ruby解决了这个问题。

我使用了来自ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz的readline 6.2,其安装时使用的是基本的./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"

之后,IRB开始将点,下划线和一堆其他字符视为单词分隔符。

正常工作的readline也应该返回如下内容:

Readline::VERSION => "6.2"     

而行为不端的人说:

Readline::VERSION => "EditLine wrapper"

答案 1 :(得分:1)

如果您遇到上述问题(无论是安装失败还是只需要更多指示),我都采取了以下措施。

对于那些最新的Mac OS X(10.11.2 El Capitan):

curl ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz > temp-readline.tar.gz然后与tar temp-readline.tar.gz解压缩。然后使用cd readline-6.3进入该目录。使用./configure && make && make install进行配置和安装,如上所述。

希望这有帮助。