箭头键不在shell中工作

Sea*_*ser 10 shell terminal laravel-5

我开始使用Laravel 5项目并尝试使用'php artisan tinker'(psy shell)进行一些实验,但我遇到了一些奇怪的问题.在tinker/psy shell中,按任意箭头键将字符文字打印到屏幕而不是执行预期的行为(左右移动字符,上下循环最近的命令).

正在输出^[[A.向下输出^[[B.正在输出^[[C.左输出^[[D.

这可能是我的终端问题,而不是Laravel错误.我在跑步时遇到了同样的错误行为php -a.

我在OSX上运行终端,使用xterm仿真.

gle*_*man 28

PHP REPL不实现readline的行编辑和历史记录功能.我不知道是否有一个实现它的PHP模块,但你可以这样做:

rlwrap php artisan tinker
Run Code Online (Sandbox Code Playgroud)

您可能必须为您的操作系统安装rlwrap.


小智 5

这是因为 PHP 没有使用 readline 支持构建。您可以在使用--with-readline参数编译和构建 PHP 时启用此功能。

http://php.net/manual/en/features.commandline.interactive.php