我在OS X上使用irb,当我按左/右选项(或META + B / F)时,光标移动到下一个/上一个单词。但是,irb并不会将点(。)字符视为单词分隔符。
我试图将(。)添加到.irbrc中,所以它现在看起来像这样:
Readline.basic_word_break_characters = " \t\n`><=.;|&{("
但这没有效果。
我使用的是Mountain Lion红宝石,以及手动编译的1.9.3,两种版本的irb表现相似。此外,dot在bash和pry中被视为分隔符,因此系统范围的设置可能很好。
任何帮助表示赞赏,
由于
答案 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
进行配置和安装,如上所述。
希望这有帮助。