在Perl调试器和CPAN客户端中,上下箭头不再起作用

在Perl调试器和CPAN客户端中,上下箭头不再起作用,perl,debugging,cpan,arrow-keys,perl5.12,Perl,Debugging,Cpan,Arrow Keys,Perl5.12,我曾经在MacOSX(V10.7.5)上使用Active Perl,然后我切换到通过Mac端口提供的版本(V5.12.4) 现在,当我运行CPAN客户端或perl调试器时,我无法使用ArrowUp和ArrowDown访问历史记录,提示符处显示的分别是^[[A和^[[B 至少在历史运行的调试器上,我可以通过!num访问过去的命令。默认情况下,您得到的唯一Term::ReadLine处理程序是Term::ReadLine::Perl,它非常简单,不理解箭头键之类的东西。您可能想安装Term::Rea

我曾经在MacOSX(V10.7.5)上使用Active Perl,然后我切换到通过Mac端口提供的版本(V5.12.4)

现在,当我运行CPAN客户端或perl调试器时,我无法使用ArrowUp和ArrowDown访问历史记录,提示符处显示的分别是
^[[A
^[[B


至少在历史运行的调试器上,我可以通过!num访问过去的命令。

默认情况下,您得到的唯一
Term::ReadLine
处理程序是
Term::ReadLine::Perl
,它非常简单,不理解箭头键之类的东西。您可能想安装
Term::ReadLine::Gnu
我最后做的事情g根据LeoNerd和Hakon的回答,在Preferences>Advanced

下将我的“Terminal”窗口的术语更改为vt100:- 在CentOS 7,我不得不跑

sudo yum install perl-Term-ReadLine-Gnu
现在,箭头键在perl-d中起作用,如果您想避免安装额外的OS库(或者因为您没有root/sudo而需要),您可以使用CPAN获取Readline的以下两种perl实现之一:

  • (Readline库的Perl实现)
  • (Readline库的纯Perl实现)

如果您已经安装了自己的本地Perl(例如,使用Perlbrew),那么它尤其方便。

下面是我要做的事情,以使它与Cygwin Perl一起工作

安装以下Cygwin软件包:

libncurses-devel
libreadline-devel

然后从CPAN安装
Term::ReadLine::Gnu
模块,这就是帮助我进行Debian stretch的原因

apt为“git For Windows”安装libterm readline gnu perl

,您可以执行以下操作:

下载该文件

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:/git-sdk-64/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-de0”会话中

在64位git for Windows SDK中,通常需要将这两个文件复制到目录中

C:/Program Files/Git/usr/share/perl5/site_perl/Term/ReadLine/
C:/git-sdk-64/usr/share/perl5/site_perl/Term/ReadLine

谢谢,它很有魅力!我不能给你的答案投票,因为我没有足够的分数,但我肯定会的!在Ubuntu 14.04上,
cpanm Term::ReadLine::Gnu
最初失败了。必须先运行
sudo apt get install libncurse5 dev libreadline6 dev
。这对我在OS X 10.9.5中的5.18.4版非常有效。谢谢!这是我的第二次尝试我帮不上忙。嗯?我想避免安装额外的库,你需要安装以下额外的库?@fishinear区别在于它们的安装位置,在操作系统级别,或者仅仅在Perl的范围内。你不需要rpm或deb。我编辑了我的答案,试图澄清区别。这个helped me.
cpan-f Term::ReadLine::Perl
有效。