shell 风格界面的 Ruby 手柄向上箭头

Ali*_*own 3 ruby shell

我正在 ruby​​ 中实现一个简单的 shell 样式界面,如下所示:

exit = false
while(not exit)
        print '?> '
        case gets("\n").strip
        when "quit"
                exit = true
        when "xxx"
            #handle xxx command 
        end
end
Run Code Online (Sandbox Code Playgroud)

如果我按向上箭头,我会得到^[[A。是否有办法像在 shell 中填充上一个命令一样来实现这一点?

Mic*_*ile 5

您应该为此使用 readline 。Ruby 有一个实现:http://bogojoker.com/readline/

这是它的 ruby​​ api http://www.ruby-doc.org/stdlib/libdoc/readline/rdoc/index.html