使用 Term::Readline:Zoid 时出现 "ViCommand: no such keymap" 错误

Getting "ViCommand: no such keymap" errors while using Term::Readline:Zoid

我有一段简单的代码,在导出之前运行良好

PERL_RL='Zoid default_mode=ViCommand'

以便在编辑时使用 vi 模式。当我测试代码时出现错误:ViCommand:没有这样的键盘映射。我安装了 libterm-readline-zoid-perl,据我所知,ViCommand 是内置的,所以我应该可以继续使用,但显然不是。

#!/usr/bin/env perl
use warnings;
use strict;
use Term::ReadLine;

my $term = new Term::ReadLine 'LineEdit';

while ( defined ($_ = $term->readline($ARGV[0],$ARGV[1])) ) {
    print $_;
    exit;
}

似乎没有名为 ViCommand 的命令。但是,通过检查 source,请参阅第 80 行:

command => { _use => 'Term::ReadLine::Zoid::ViCommand'  },

您应该可以通过像这样设置环境变量 PERL_RL 来使用“ViCommand”行编辑:

PERL_RL='Zoid default_mode=command'

另一个解决方案:

$term->parse_and_bind("set editing-mode vi");