我想使用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
很好地配合readline
回colored
退到以前应用的格式?