2

Term::Readline次のようなカラフルなプロンプトで使用したい:readline("foo" . colored("bar", "red") . "baz")

私は見つけました Term::ANSIColor、そしてそれは有望に見えます。ただし、後のすべての色または下線をクリアしているように見え colored("some text", "red")ます。

readlineによって生成されたプロンプトには下線が含まれているため、これは悪いことです。時々、そうです。

colored以前に適用されたフォーマットがわからないため、ドキュメントに記載されている Colorstacksが役立つかどうかを判断できませんでした。ドキュメンテーションには、直接詰め込んだ例しかなくprint、せいぜい、私のような Perl 初心者にはあまり適していません。

問題は、によって生成されたプロンプトがreadline一貫していないように見えることです。最初に下線が引かれ、色付きの部分の後に下線が消えているためです。

パールと色

次のコードに示すように、下線が発生するのに関連していると思われる「装飾」を読み取ることができます。

#!/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