Стрелки вверх и вниз больше не работают в отладчике Perl и клиенте CPAN

Раньше я использовал Active Perl на Mac OS X (v 10.7.5), а затем переключился на тот, который был предоставлен через порты Mac (v 5.12.4).

Теперь, когда я запускаю клиент CPAN или отладчик perl, я не могу получить доступ к истории, используя ArrowUp и ArrowDown, что показано в приглашении: ^[[A а также ^[[B соответственно.

По крайней мере, на отладчике история работает, я могу получить доступ к прошлым командам через!число

5 ответов

Решение

По умолчанию единственный Term::ReadLine обработчик вы получаете Term::ReadLine::Perl что довольно просто и не понимает такие вещи, как клавиши со стрелками. Вы, вероятно, хотите установить Term::ReadLine::Gnu,

Если вы хотите избежать установки дополнительных библиотек ОС (или вам нужно, потому что у вас нет root/sudo), вы можете просто использовать CPAN, чтобы получить одну из этих двух реализаций Perl Readline:

Это особенно удобно, если у вас уже есть собственная локальная установка Perl (например, с использованием Perlbrew).

Исходя из ответов от LeoNerd и Hakon:- На CentOS 7 мне пришлось бежать

sudo yum install perl-Term-ReadLine-Gnu

установить модуль. Теперь клавиши со стрелками работают в perl -d

Это то, что помогло мне в растяжке Debian

apt установить libterm-readline-gnu-perl

Для "git для 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

В итоге я изменил термин окна "Терминал" на vt100 в "Предпочтения"> "Дополнительно".

Вот что я должен был сделать, чтобы заставить его работать с Cygwin Perl

Установите следующие пакеты Cygwin:

libncurses-devel
libreadline-devel

Затем установите Term::ReadLine::Gnu модуль из CPAN

Другие вопросы по тегам