irb中的单词边界

时间:2011-02-23 22:17:38

标签: ruby macos readline irb word-boundaries

我在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实例上,句点视为字边界。

3 个答案:

答案 0 :(得分:3)

我认为这与Readline模块有很大关系。

可以更改分词符。在您的IRB中运行此命令,并查看Readline使用的字符:

Readline.basic_word_break_characters

Readline是标准ruby库的一部分:http://ruby-doc.org/stdlib/libdoc/readline/rdoc/index.html

答案 1 :(得分:1)

Readline还使用以下配置文件:

  • 的/ etc / inputrc中
  • 〜/ .inputrc(或环境变量INPUTRC指定的文件名)

这可能会导致不同机器上出现不同的行为(但可能不会出现在ruby版本之间 - 我猜ruby会在顶部添加另一层配置)。

答案 2 :(得分:1)

这可能与此有关吗?
http://jorgebernal.info/2009/11/18/fixing-snow-leopard-ruby-readline/

在任何情况下,确保选项-B / F实际上绑定到inputrc文件中的前向和后向单词,就像John指出的那样。

字边界也由您的区域设置决定(请参阅“locale”命令),更具体地说,由LC_CTYPE(字符分类)确定。我认为这不是问题所在,但您可能需要查看并比较您的语言环境设置以防万一。