我有一个涉及我的 php 交互式 CLI 程序的错误。
我使用 readline_add_history 将命令添加到历史记录中,并使用 readline 读取它们。
错误是,如果使用向上箭头键,我将历史记录滚动到 5 个字符或更长的命令,命令的第一个字符“粘住”,并且在我继续使用箭头键再次滚动后将停留在那里. 只有在我按Enter键后它才会消失。
例如:
% hello
<enter>
%
<up arrow key>
% hello
<down arrow key>
% h
<up arrow key>
% hhello
<down arrow key>
% h
<enter>
%
<up arrow key>
% hello
** notice here that the extra h isn't read in as a command. **
我在哪里可以查看涉及箭头键/命令历史记录的代码?我在网上寻找有关 readline 如何处理箭头键和历史记录的资源,但我找不到任何东西。
我的代码是这样的:
while(true)
{
$command = readline( "\n%" );
.. do stuff ..
readline_add_history( $command );
}
我也有一个 readline_completion_function 但是当我使用箭头键时它没有被调用。