irb中的单词边界
我在Snow Leopard上使用终端。
在命令行,如果我输入foo.bar.baz.bang.quuz.quux
,当我点击选项-B时,它会逐字地向后移动光标 – 在每个句点停止,因为它考虑了一个周期到是一个词边界。 同样,选项-F逐字逐句前进。
在irb(0.9.5,ruby 1.8.7)中,选项-B和-F也有此行为,但句点不再被视为单词边界,这使得这些键盘快捷键显着减少了用处。
我怎么能改变这个?
编辑:Curiouser和curiouser:在具有相同irb和ruby版本的EC2实例上,句点被视为单词边界。
这可能与此有关吗?
http://jorgebernal.info/2009/11/18/fixing-snow-leopard-ruby-readline/
在任何情况下,确保选项-B / F实际上绑定到inputrc文件中的前向和后向单词,就像John指出的那样。
字边界也由您的区域设置决定(请参阅“locale”命令),更具体地说,由LC_CTYPE(字符分类)确定。 我不认为这是问题所在,但您可能需要检查并比较您的区域设置以防万一。
我认为这更多地与Readline模块有关。
单词分隔字符可以更改。 在您的IRB中运行此命令,并查看Readline使用的字符:
Readline.basic_word_break_characters
Readline是标准ruby库的一部分: http : //ruby-doc.org/stdlib/libdoc/readline/rdoc/index.html
Readline还使用以下配置文件:
- 在/ etc / inputrc文件
- 〜/ .inputrc(或环境变量INPUTRC指定的文件名)
这可能会导致不同机器上的不同行为(但可能不会在ruby版本之间 – 我猜ruby在顶部添加了另一层配置)。