saw*_*awa 8 ruby irb auto-indent
如果您使用带有自动缩进模式的irb,则end语句会额外缩进一级
def foo
...
end
Run Code Online (Sandbox Code Playgroud)
而不是显示普通的缩进约定:
def foo
...
end
Run Code Online (Sandbox Code Playgroud)
因为你无法事先告诉irb你将在下一行中逃脱一个级别.这个问题已经在这里或这里得到了解决,但都没有得到满意的答案.他们只是建议放弃.
但是,如果我们可以最小程度地覆盖一些irb方法,以便自动缩进不会在提示区域中插入空格,而是在您输入的行的开头插入,则默认情况下,irb仍将插入空格,但我们将能够用退格键擦除一些空格.这可能吗?
或者,如果这是不现实的,那么是否可以将irb擦除屏幕的最后一行,并在按Enter键后立即用适当的缩进重新显示end?
可以重写最后一行.由于缺少文档和跨版本的一致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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |