【发布时间】:2015-04-12 01:27:01
【问题描述】:
我正在我自己的 shell 中用 C++ 实现历史命令。我正在用 NonCanonicalMode 编写它。我已经实现了向上箭头键和向下箭头键以及退格键。我不知道如何开始历史。我应该使用其中一个 C++ 库中的内置函数吗?
----编辑
字符 *buf;
rl_bind_key('\t',rl_abort);//disable auto-complete
while((buf = readline("\n >> "))!=NULL)
{
if (strcmp(buf,"quit")==0)
break;
printf("[%s]\n",buf);
if (buf[0]!=0)
add_history(buf);
}
【问题讨论】:
-
你可以窃取 libreadline 中的代码吗?
-
C++ 标准库中没有这方面的内容。 C++ 标准库甚至不支持非规范输入模式。您需要使用第三方库或自己编写,使用操作系统的 API。
-
如果我自己尝试实现它会怎样...我有这样的东西(检查编辑)