Pfeiltasten funktionieren nicht in der Shell

8

Ich beginne mit einem Laravel 5 Projekt und versuche einige Experimente mit 'php artisan tinker' (psy shell) zu machen, aber ich stoße in etwas Seltsames. In der Tinker / Psy-Shell werden durch Drücken einer der Pfeiltasten Zeichenliterale auf den Bildschirm gedruckt, anstatt das beabsichtigte Verhalten auszuführen (Zeichen für links und rechts verschieben, letzte Befehle für hoch und runter zyklieren).

Nach oben gibt ^[[A aus. Down gibt ^[[B aus. Richtig ist die Ausgabe von ^[[C . Links gibt ^[[D aus.

Dies ist wahrscheinlich ein Problem mit meinem Terminal und kein Laravel-Bug. Ich bekomme das gleiche fehlerhafte Verhalten, wenn php -a ausgeführt wird.

Ich betreibe Terminal unter OSX mit einer Xterm-Emulation.

    
Sean Fraser 26.02.2015, 03:02
quelle

4 Antworten

21

PHP REPL implementiert nicht die Zeilenbearbeitungs- und Historienfunktionen von readline. Ich weiß nicht, ob es ein PHP-Modul gibt, das es implementiert, aber Sie können:

%Vor%

Möglicherweise müssen Sie rlwrap für Ihr Betriebssystem installieren.

    
glenn jackman 26.02.2015, 03:35
quelle
2

Dies liegt daran, dass PHP nicht mit Readline-Unterstützung erstellt wurde. Sie können dies aktivieren, wenn Sie PHP mit dem Argument --with-readline kompilieren und erstellen.

Ссылка

    
John 18.05.2016 18:38
quelle
1

Ich nehme an, Ihr Konto wird mit /bin/sh anstelle von /bin/bash

erstellt

Sie müssen in diesem Fall die Login-Shell ändern. Befolgen Sie diese Schritte und Ihr Problem wird gelöst.

  1. sudo chsh -s /bin/bash <username>
  2. Melden Sie sich ab und wieder an.
Karan Purohit 25.10.2016 11:27
quelle
0

In meinem Fall muss ich php7-readline

installieren %Vor%     
Sucipto 23.01.2018 05:16
quelle

Tags und Links