在Perl调试器和CPAN客户端中,上下箭头不再起作用
我曾经在MacOSX(V10.7.5)上使用Active Perl,然后我切换到通过Mac端口提供的版本(V5.12.4) 现在,当我运行CPAN客户端或perl调试器时,我无法使用ArrowUp和ArrowDown访问历史记录,提示符处显示的分别是在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
^[[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
有效。