Ответ 1
По умолчанию единственным обработчиком Term::ReadLine
, который вы получаете, является Term::ReadLine::Perl
, что довольно просто и не понимает таких вещей, как клавиши со стрелками. Вероятно, вы захотите установить Term::ReadLine::Gnu
.
Я использовал Active Perl на своей Mac OS X (v 10.7.5), а затем переключился на тот, который предоставляется через Mac-порты (v 5.12.4).
Теперь, когда я запускаю клиент CPAN или отладчик perl, я не могу получить доступ к истории с помощью ArrowUp и ArrowDown, то, что показано в приглашении, является ^[[A
и ^[[B
соответственно.
По крайней мере, в отладчике работает история, я могу получить доступ к прошлым командам через! num.
По умолчанию единственным обработчиком Term::ReadLine
, который вы получаете, является Term::ReadLine::Perl
, что довольно просто и не понимает таких вещей, как клавиши со стрелками. Вероятно, вы захотите установить Term::ReadLine::Gnu
.
Следуя ответам от LeoNerd и Hakon: - На CentOS 7 мне пришлось запустить
sudo yum install perl-Term-ReadLine-Gnu
чтобы установить модуль. Теперь клавиши со стрелками работают в perl -d
Если вы хотите избегать установки дополнительных ОС библиотек (или их нужно, потому что у вас нет root/sudo), вы можете просто использовать CPAN для захвата одного из этих две реализации Perl Readline:
Это особенно удобно, если у вас уже есть собственная локальная установка Perl (например, с использованием Perlbrew).
Это то, что помогло мне в растяжке Debian
apt установить libterm-readline-gnu-perl
В результате я изменил термин моего окна "Terminal" на vt100 в разделе "Настройки" > "Дополнительно"
Вот что я должен был сделать, чтобы заставить его работать с Cygwin Perl
Установите следующие пакеты Cygwin:
libncurses-devel
libreadline-devel
Затем установите модуль Term::ReadLine::Gnu
из CPAN
Для "git for Windows" вы можете сделать следующее:
От
Илья Захаревич Пакет Term-ReadLine-Perl-1.0303
скачать файл
Term-ReadLine-Perl-1.0303.tar.gz
извлеките его с помощью
tar xvzf ../Term-ReadLine-Perl-1.0303.tar.gz
Два файла
Term-ReadLine-Perl-1.0303/ReadLine/Perl.pm
Term-ReadLine-Perl-1.0303/ReadLine/readline.pm
обычно копируется с правами администратора в каталог
C:/Program Files/Git/usr/share/perl5/site_perl/Term/ReadLine/
в результате чего два файла
C:/Program Files/Git/usr/share/perl5/site_perl/Term/ReadLine/Perl.pm and
C:/Program Files/Git/usr/share/perl5/site_perl/Term/ReadLine/readline.pm
После этого вы можете использовать клавиши курсора внутри отладчика Perl, например внутри сеанса "perl -de 0".
В 64-битном git для Windows SDK вам обычно приходится копировать два файла в каталог
C:/git-sdk-64/usr/share/perl5/site_perl/Term/ReadLine