5

SnowLeopardでTerminalを使用しています。

コマンドラインで入力foo.bar.baz.bang.quuz.quuxした場合、オプションBをタップすると、カーソルが単語ごとに後方に移動します。ピリオドは単語の境界と見なされるため、ピリオドごとに停止します。同様に、オプションFは単語ごとに進みます。

irb(0.9.5、ruby 1.8.7)では、オプションBと-Fもこの動作をしますが、ピリオドは単語の境界として扱われなくなり、これらのキーボードショートカットの有用性が大幅に低下します。

どうすればこれを変更できますか?

編集:好奇心旺盛で好奇心旺盛:同じirbバージョンとrubyバージョンを持つEC2インスタンスでは、ピリオド単語の境界として扱われます。

4

3 に答える 3

4

これはReadlineモジュールともっと関係があると思います。

単語区切り文字は変更できます。これをIRBで実行し、Readlineが使用している文字を確認します。

Readline.basic_word_break_characters

Readlineは標準のrubyライブラリの一部です:http://ruby-doc.org/stdlib/libdoc/readline/rdoc/index.html

于 2011-03-18T18:50:17.407 に答える
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.

于 2011-07-01T15:57:37.273 に答える
1

Readlineは、次の構成ファイルも使用します。

  • / etc / inputrc
  • 〜/ .inputrc(または環境変数INPUTRCで指定されたファイル名)

これにより、マシンごとに異なる動作が発生する可能性があります(ただし、rubyのバージョン間ではおそらくそうではありません。rubyは構成の別のレイヤーを上に追加すると思います)。

于 2011-06-29T21:25:30.000 に答える