word boundaries in irb

筅森魡賤 提交于 2019-12-22 08:00:04

问题


I'm using Terminal on Snow Leopard.

At the command line, if I've typed foo.bar.baz.bang.quuz.quux, when i tap option-B, it moves the cursor backward word by word -- stopping at every period, because it considers a period to be a word boundary. Likewise, option-F moves forward word by word.

In irb (0.9.5, ruby 1.8.7), option-B and -F also have this behavior, but the period is no longer treated as a word boundary, which makes these keyboard shortcuts significantly less useful.

How can I change this?

EDIT: Curiouser and curiouser: On an EC2 instance which has the same irb and ruby versions, the period is treated as a word boundary.


回答1:


Could this be of relevance here?
http://jorgebernal.info/2009/11/18/fixing-snow-leopard-ruby-readline/

In any case make sure option-B/F are actually bound to forward and backward-word in your inputrc files, like John pointed out.

Also word boundaries are determined by your locale (see the "locale" command), and more specifically by LC_CTYPE (character classification). I don't think that's the problem here, but you might want to check out and compare your locale settings just in case.




回答2:


I think this has more to do with the Readline module.

The word break characters can be changed. Run this in your IRB and see what characters is Readline using:

Readline.basic_word_break_characters

Readline is part of the standard ruby library: http://ruby-doc.org/stdlib/libdoc/readline/rdoc/index.html




回答3:


Readline also uses the following configuration files:

  • /etc/inputrc
  • ~/.inputrc (or a filename specified by the environment variable INPUTRC)

This can cause different behavior on different machines (but probably not between ruby versions - I guess ruby adds another layer of configuration on top).



来源:https://stackoverflow.com/questions/5097919/word-boundaries-in-irb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!