我在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中被视为分隔符,因此系统范围的设置可能很好.
任何帮助,赞赏,
谢谢
好的,看来问题是我的系统中根本没有安装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)