在那里有一个方便的方法在libedit / editline中进行多行输入

时间:2015-12-06 01:30:09

标签: c command-line readline editline

使用libedit / editline,并尝试找出一种做多行输入/编辑的好方法。目标是SQL客户端,其中查询通常跨越多行并以;终止。

我可以调用el_gets,并处理每一行输入,当我看到终止;时停止。我甚至可以将它们连接起来并将它们存储为el_history中的单个条目 - 当使用箭头滚动历史记录时它将正确访问它们。

但是,当输入命令并开始换行后,我再也无法使用箭头向上移动并编辑上一行。 E.g:

prompt> SELECT * FROM table
WHERE 

此时,我希望能够使用向上箭头,向上移动并编辑已在第一行输入的文本。这可能吗?怎么会这样做?我假设在这种情况下使用el_gets是不正确的,因为它会从编辑行缓冲中删除该行,但我没有看到可行的替代API。

思想?

0 个答案:

没有答案