【问题标题】:Undoing auto-indentation取消自动缩进
【发布时间】:2011-05-20 23:35:30
【问题描述】:

如果您将 irb 与自动缩进模式一起使用,end 语句会额外缩进一级

 def foo
   ...
   end

而不是显示普通的缩进约定:

def foo
  ...
end

因为你不能提前告诉 irb 你要在下一行逃出一个关卡。这个问题已经在herehere 等其他地方得到解决,但都没有给出令人满意的答案。他们只是建议放弃。

但是,如果我们可以最低限度地覆盖一些 irb 方法,以便自动缩进不会在提示区域而是在您键入的行的开头插入空格,那么默认情况下,irb 仍然会插入空格,但是我们将能够用退格键擦除一些空格。这可能吗?

或者,如果这不现实,那么是否可以让 irb 从屏幕上擦除最后一行,并在您在包含end 的行上按 Enter 后立即以适当的缩进重新显示它?

【问题讨论】:

    标签: ruby irb auto-indent


    【解决方案1】:

    可以重写最后一行。由于缺乏文档和跨版本的一致 api,在 irb 中执行此操作很困难。 irb 替代品ripl 已经通过auto-indent plugin 自行解决了这个问题。如果您想尝试 ripl 及其自动缩进:

    $ gem install ripl-auto_indent
    $ echo "require 'ripl/auto_indent'" >> ~/.riplrc
    
    # Auto-indent away
    $ ripl
    >> def foo
    >>   puts "it's auto-magic!"
    >> end
    

    【讨论】:

    • 我喜欢 ripl 并开始使用它。现在,我正在尝试自定义提示字符,但我在网上找不到说明。使用 IRB.conf[:DEFAULT] ... 的 irb 样式似乎不起作用。你能给我指向一个链接以获得指导或简要说明如何做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多