1

我写了一个小程序来读取输入,打印结果,然后循环。喜欢REPL

当我按下键盘上的向上键并编辑这个输入时,我想获得我之前输入的输入,比如做什么bash或做什么zsh。我不知道实施。我也搜索了网络,但没有我想要的结果。有人可以为我指路吗?或者给我一些文章阅读?

关键是:如何在屏幕上打印 EDITABLE 行?

4

3 回答 3

4

我没有个人经验,但我的理解是Term::ReadLine提供带有历史记录的命令编辑功能。它甚至是perl分布的一部分。

于 2013-03-28T03:22:21.750 回答
2

你只需要:

  • 存储用户输入的历史,就像 bash 和 zsh 一样;
  • 监听按键,就像 bash 和 zsh 一样;
  • 按下时显示最后一条命令。就像,你猜对了,bash 和 zsh。

这就是编程的全部意义:将我们知道如何解决的大问题分解成我们知道如何解决的小问题,或者更容易弄清楚如何解决。因此,如果您不知道如何做我上面列出的任何事情,请尝试编写一些代码、阅读 API 文档、在 Google/Stack Overflow 上寻找答案,或者 - 再一次 - 将它们分解为子问题。

于 2013-03-28T03:11:09.580 回答
2

if your point is "print" maybe you need Term::Screen. example code here: code.

otherwise if your point is "history", man/perldoc Term::ReadLine.

于 2013-03-28T06:28:23.560 回答