【问题标题】:Arrow up and down does not work any more in Perl debugger and CPAN client向上和向下箭头在 Perl 调试器和 CPAN 客户端中不再起作用
【发布时间】:2012-11-26 19:50:11
【问题描述】:

我曾经在我的 Mac OS X (v 10.7.5) 上使用 Active Perl,然后我切换到通过 mac 端口 (v 5.12.4) 提供的那个。

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

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

【问题讨论】:

    标签: perl debugging cpan arrow-keys perl5.12


    【解决方案1】:

    默认情况下,您获得的唯一Term::ReadLine 处理程序是Term::ReadLine::Perl,它非常简单并且不理解诸如箭头键之类的东西。你可能想安装Term::ReadLine::Gnu

    【讨论】:

    • 谢谢,它就像一个魅力!我不能赞成你的回答,因为我没有足够的分数,但我一定会的!
    • 在 Ubuntu 14.04 上,cpanm Term::ReadLine::Gnu 最初失败。必须先运行sudo apt-get install libncurses5-dev libreadline6-dev
    • 这在 OS X 10.9.5 和 perlbrewed 5.18.4 中对我有用。谢谢!
    【解决方案2】:

    根据 LeoNerd 和 Hakon 的回答:- 在 CentOS 7 上我必须运行

    sudo yum install perl-Term-ReadLine-Gnu
    

    安装模块。现在箭头键在 perl -d 中工作

    【讨论】:

      【解决方案3】:

      如果您想避免安装其他 OS 库(或者因为您没有 root/sudo 而需要),您可以使用 CPAN 获取 Readline 的这两个 Perl 实现之一:

      如果您已经有自己的本地 Perl 安装(例如,使用 Perlbrew),这将特别方便。

      【讨论】:

      • 呃?我想避免安装额外的库,需要安装以下额外的库吗?
      • @fishinear 不同之处在于它们的安装位置、操作系统级别或仅在 Perl 范围内。您实际上并不需要 rpm 或 deb。我已经编辑了我的答案以试图澄清差异。
      • 这对我有帮助。 cpan -f Term::ReadLine::Perl 工作。
      【解决方案4】:

      对于“git for Windows”,您可以执行以下操作:

      来自

      Ilya Zakharevich's package 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”会话中。

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

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

      【讨论】:

        【解决方案5】:

        这对我在 Debian 伸展方面有所帮助

        apt install libterm-readline-gnu-perl
        

        【讨论】:

          【解决方案6】:

          我最终做的是在“首选项”>“高级”下将“终端”窗口的术语更改为 vt100

          【讨论】:

          • 这对我没有帮助。
          【解决方案7】:

          这是我必须做的才能让它与 Cygwin Perl 一起工作

          安装以下 Cygwin 软件包:

          libncurses-devel
          libreadline-devel
          

          然后从 CPAN 安装 Term::ReadLine::Gnu 模块

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多