8

自動インデントモードでirbを使用すると、endステートメントが1レベル余分にインデントされます

 def foo
   ...
   end

通常のインデント規則を示す代わりに:

def foo
  ...
end

次の行で1つのレベルを脱出することを事前にirbに伝えることができないためです。この質問はここここのような他の場所で扱われていますが、どちらも満足のいく答えを与えません。彼らはただあきらめることを提案します。

ただし、一部のirbメソッドを最小限に上書きして、自動インデントによってプロンプト領域ではなく入力した行の先頭に空白が挿入される場合、デフォルトでは、irbはスペースを挿入しますが、バックスペースでいくつかのスペースを消去します。これは可能ですか?

または、それが現実的でない場合は、irbに画面の最後の行を消去させ、?を含む行でEnterキーを押した直後に適切なインデントで再表示することは可能endですか?

4

1 に答える 1

5

最終行の書き換えが可能です。ドキュメントがなく、バージョン間でAPIが一貫しているため、irbでそれを行うのは困難です。irbの代替であるriplは、自動インデントプラグインを使用してこの問題を解決しました。riplとその自動インデントを試してみたい場合:

$ gem install ripl-auto_indent
$ echo "require 'ripl/auto_indent'" >> ~/.riplrc

# Auto-indent away
$ ripl
>> def foo
>>   puts "it's auto-magic!"
>> end
于 2011-05-22T18:23:37.977 に答える