Perl отладчик не работает с клавишами со стрелками под Perlbrew

perl arrow-keys perlbrew perldb

284 просмотра

2 ответа

2104 Репутация автора

Я хотел бы, чтобы клавиши со стрелками работали для истории команд в Perl-отладчике. Это решение выглядит хорошо, поэтому, так как я использую Ubuntu, я попытался

sudo aptitude install libterm-readline-gnu-perl

Но я все еще получаю ^[[Aи ^[[Bвозвращаюсь в отладчике perl вместо предыдущих / следующих команд.

Я обнаружил, что это определенно проблема в моем perlbrewокружении. Если я запускаю /usr/bin/perl -dклавиши со стрелками, они работают (т.е. установка исправляет это только для этого Perl).

Как заставить отладчик работать под perlbrew?

Как последнее усилие, в моей среде perlbrew я пытался, cpanm Term::ReadLine::Gnuно получил ошибку

Не удалось найти ни libtermcap.a, libncurses.a, ни libcurses.

Я мог бы начать устанавливать больше библиотек, но мне кажется, что я что-то упускаю, так как это всего лишь проблема с Perlbrew.

Автор: Randall Источник Размещён: 18.07.2016 07:09

Ответы (2)


2 плюса

75039 Репутация автора

Модули Perl, установленные через систему пакетов вашего дистрибутива, доступны только в perl из вашего дистрибутива (т.е. /usr/bin/perl). Другие установки perl (например, управляемые perlbrew) не затрагиваются. Вот почему другие Perl не видят Term :: ReadLine :: Gnu.

Установка Term :: ReadLine :: Gnu из среды perlbrew (например, через cpan или cpanm) является правильным решением. Ошибка, которую вы получаете, вероятно, вызвана отсутствием заголовков разработки (Term :: ReadLine :: Gnu является оболочкой библиотеки readline C, поэтому для сборки нужны заголовки). Попробуйте установить ncurses-dev(с помощью aptitude), затем запустите cpanmснова.

Автор: melpomene Размещён: 18.07.2016 07:37

0 плюса

2104 Репутация автора

Решение

Установка пакетов, предлагаемых @melpomene, делает свое дело.

Но я нашел другое решение, которое не требует пакетов dev (и, следовательно, не требует root). Любой из следующих пакетов CPAN может использоваться самостоятельно:

  • Term :: ReadLine :: Perl (реализация Perl библиотек Readline)
  • Term :: Readline :: Zoid ( Реализация чистых Perl библиотек Readline)

Поскольку Perlbrew иногда (часто?) Используется в средах, где у вас нет root, это, вероятно, более удобное решение.

Автор: Randall Размещён: 19.07.2016 01:51
32x32