2015-11-02 71 views
3

我正在研究Ruby中的问题/回答命令行程序。我希望让用户在需要时编辑问题或答案,但我找不到任何这样做的过度矫枉过正的方法。我试图钻研curses,但无法找到任何方式在那里展示可编辑的文本,而无需编写整个自己的东西,这是一个原型应用程序的过度杀伤力。我尝试使用Readline:如何在命令行应用程序中显示可编辑文本?

Readline.pre_input_hook = -> do 
    Readline.insert_text "hello.txt" 
    Readline.redisplay 

    # Remove the hook right away. 
    Readline.pre_input_hook = nil 
end 

input = Readline.readline("Filename: ", false) 

但它除了打印“文件名:”之外不执行任何操作。 Python的诅咒似乎有一个文本小部件“textarea”,但红宝石似乎并没有它。

回答

0

如果问题是一个体面的长度,它可能是值得有一个选项,刚刚启动$EDITOR(六(米),纳米等)。否则,请查看libeditlibreadline

+0

我使用ruby 2.0,并想限制自己使用标准库。我尝试了Readline的pre_input_hook功能,但它什么也没做(看编辑的问题)。 – Melodius

+0

@Melodius不够公平,但恐怕我对Ruby标准库的帮助不够大(我是一个Python人)。 Readline *应该*工作,但是...呃。 – felixphew

相关问题