2

我想使用Term::Readline彩色提示,类似于:readline("foo" . colored("bar", "red") . "baz")

我发现 Term::ANSIColor它看起来很有希望。但是,它确实似乎清除了所有颜色或之后的下划线,即 colored("some text", "red").

这很糟糕,因为生成的提示readline包含下划线。有时,就是这样。

我想colored不知道以前应用了什么格式,并且我无法确定文档中提到的 Colorstacks是否会对我有所帮助。该文档仅包含直接print填充的示例,并且 - 充其量 - 不太适合像我这样的 Perl 新手。

问题是生成的提示readline看起来不一致,因为它是先下划线,在彩色部分之后,下划线就没有了:

perl 和颜色

我可以阅读似乎与下划线发生相关的“装饰品”,如以下代码所示:

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

my $term;

sub prompt {
    $term = new Term::ReadLine 'colourtest'
        unless $term;
    print "My ornaments: " . $term->ornaments . "\n";
    my $answer = $term->readline(@_);
    # readline turns off autoflush, re-enable it
    $| = 1;
    return $answer;
}
prompt("Underlined " . 
    colored("followed by colour", "red") . 
    " then plain");

我想我的问题是:我能不能 Term::ANSIColor很好地配合readlinecolored退到以前应用的格式?

4

0 回答 0