【问题标题】:How can I present editable text in a command line application?如何在命令行应用程序中显示可编辑文本?
【发布时间】:2016-02-02 00:09:16
【问题描述】:

我正在开发 Ruby 中的问答命令行程序。我想让用户在需要时编辑问题或答案,但我找不到任何非矫枉过正的方法。我尝试深入研究诅咒,但找不到任何方法可以在那里呈现可编辑文本,而无需自己编写整个代码,这对于原型应用程序来说太过分了。我尝试使用 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 curses 似乎有一个文本小部件“textarea”,但 ruby​​ 似乎没有。

【问题讨论】:

    标签: ruby terminal


    【解决方案1】:

    如果问题的长度合适,可能值得选择只启动$EDITOR(vi(m)、nano 等)。否则,请查看libeditlibreadline

    【讨论】:

    • 我正在使用 ruby​​ 2.0,并希望将自己限制在标准库中。我尝试了 Readline 的 pre_input_hook 功能,但它什么也没做(查看已编辑的问题)。
    • @Melodius 很公平,但恐怕我对 Ruby 标准库不够熟悉,无法提供更多帮助(我是 Python 人)。阅读线应该工作,但是...嗯。
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2011-11-30
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多