XQuartz 中 windows 的正确 shell term/TERM 值?
proper shell term/TERM value for windows in XQuartz?
我正在为 XQuartz 中的 windows 寻找 $term/$TERM 的正确设置。 xterm 和 vt100 都不能正常工作。它们确实可以显示纯文本,但是当我尝试使用一些非纯文本时它们会遇到问题。
手册页通常显示正常,但有时会出现问题。 (很遗憾,我暂时想不出好的坏的例子。)
现在,我在尝试显示 POD 时看到了这个。这是一些简单的 pod 和一些使用不同 $term 设置运行的 perldoc:
iolaire(100)> cat podtest
#!/usr/bin/env perl
1;
=pod
=head1 NAME
B<podtest> - podtest for pod output on shell
=head1 SYNOPSIS
podtest
=head1 DESCRIPTION
B<podtest> is pod test.
=cut
iolaire(101)> set term=vt100
iolaire(102)> perldoc podtest
2ESC[1mNAME2ESC[0m
2ESC[1mpodtest2ESC[0m - podtest for pod output on shell
2ESC[1mSYNOPSIS2ESC[0m
podtest
2ESC[1mDESCRIPTION2ESC[0m
2ESC[1mpodtest2ESC[0m is pod test.
iolaire(103)> set term=xterm
iolaire(104)> perldoc podtest
iolaire(105)> perldoc podtest | cat -v
^[[1mNAME^[[0m
^[[1mpodtest^[[0m - podtest for pod output on shell
^[[1mSYNOPSIS^[[0m
podtest
^[[1mDESCRIPTION^[[0m
^[[1mpodtest^[[0m is pod test.
iolaire(106)>
我在 tcsh 和 bash 中遇到了同样的问题。
Perldoc 过去在 OSX 上的 xterms 上运行良好。几年前开始出现这种行为,我终于厌倦了它,并试图让它重新工作。 (Perldoc、一些手册页,以及嗯,我在其他一些地方看到了这个问题。)
非常感谢您的帮助!
版本:XQuartz 2.7.11; OSX 10.13.4; Perl v5.26.2; Perldoc v3.28
简短:问题可能在于您的寻呼机(例如,less)的调用方式。
long:perldoc 通过 Pod::Text::Color and in turn Term::ANSIColor 使用硬编码转义,例如
# Make level two headings bold.
sub cmd_head2 {
my ($self, $attrs, $text) = @_;
$text =~ s/\s+$//;
$self->SUPER::cmd_head2 ($attrs, colored ($text, 'bold'));
}
# Fix the various formatting codes.
sub cmd_b { return colored ($_[2], 'bold') }
sub cmd_f { return colored ($_[2], 'cyan') }
sub cmd_i { return colored ($_[2], 'yellow') }
# Output any included code in green.
sub output_code {
my ($self, $code) = @_;
$code = colored ($code, 'green');
$self->output ($code);
}
并且由于所有移动部件都隐藏在 perl 库中,因此您无法做太多事情来破坏它。与其他一些 perl 模块不同,这个模块似乎忽略了 TERM
.
的值
另一方面,perldoc 用于 pager。它的手册页说
"perldoc" will use, in order of preference, the pager defined in
"PERLDOC_PAGER", "MANPAGER", or "PAGER" before trying to find a pager
on its own. ("MANPAGER" is not used if "perldoc" was told to display
plain text or unformatted pod.)
如果您碰巧将 PAGER
设置为 less
,那么它将使用该值。但是 less
将显示转义字符,如您的示例所示,除非您向命令添加选项,例如 -R
。对 PAGER
这样做可能会干扰其他应用程序,因此 perldoc
首先查找它自己的变量 PERLDOC_PAGER
.
我正在为 XQuartz 中的 windows 寻找 $term/$TERM 的正确设置。 xterm 和 vt100 都不能正常工作。它们确实可以显示纯文本,但是当我尝试使用一些非纯文本时它们会遇到问题。
手册页通常显示正常,但有时会出现问题。 (很遗憾,我暂时想不出好的坏的例子。)
现在,我在尝试显示 POD 时看到了这个。这是一些简单的 pod 和一些使用不同 $term 设置运行的 perldoc:
iolaire(100)> cat podtest
#!/usr/bin/env perl
1;
=pod
=head1 NAME
B<podtest> - podtest for pod output on shell
=head1 SYNOPSIS
podtest
=head1 DESCRIPTION
B<podtest> is pod test.
=cut
iolaire(101)> set term=vt100
iolaire(102)> perldoc podtest
2ESC[1mNAME2ESC[0m
2ESC[1mpodtest2ESC[0m - podtest for pod output on shell
2ESC[1mSYNOPSIS2ESC[0m
podtest
2ESC[1mDESCRIPTION2ESC[0m
2ESC[1mpodtest2ESC[0m is pod test.
iolaire(103)> set term=xterm
iolaire(104)> perldoc podtest
iolaire(105)> perldoc podtest | cat -v
^[[1mNAME^[[0m
^[[1mpodtest^[[0m - podtest for pod output on shell
^[[1mSYNOPSIS^[[0m
podtest
^[[1mDESCRIPTION^[[0m
^[[1mpodtest^[[0m is pod test.
iolaire(106)>
我在 tcsh 和 bash 中遇到了同样的问题。
Perldoc 过去在 OSX 上的 xterms 上运行良好。几年前开始出现这种行为,我终于厌倦了它,并试图让它重新工作。 (Perldoc、一些手册页,以及嗯,我在其他一些地方看到了这个问题。)
非常感谢您的帮助!
版本:XQuartz 2.7.11; OSX 10.13.4; Perl v5.26.2; Perldoc v3.28
简短:问题可能在于您的寻呼机(例如,less)的调用方式。
long:perldoc 通过 Pod::Text::Color and in turn Term::ANSIColor 使用硬编码转义,例如
# Make level two headings bold.
sub cmd_head2 {
my ($self, $attrs, $text) = @_;
$text =~ s/\s+$//;
$self->SUPER::cmd_head2 ($attrs, colored ($text, 'bold'));
}
# Fix the various formatting codes.
sub cmd_b { return colored ($_[2], 'bold') }
sub cmd_f { return colored ($_[2], 'cyan') }
sub cmd_i { return colored ($_[2], 'yellow') }
# Output any included code in green.
sub output_code {
my ($self, $code) = @_;
$code = colored ($code, 'green');
$self->output ($code);
}
并且由于所有移动部件都隐藏在 perl 库中,因此您无法做太多事情来破坏它。与其他一些 perl 模块不同,这个模块似乎忽略了 TERM
.
另一方面,perldoc 用于 pager。它的手册页说
"perldoc" will use, in order of preference, the pager defined in
"PERLDOC_PAGER", "MANPAGER", or "PAGER" before trying to find a pager
on its own. ("MANPAGER" is not used if "perldoc" was told to display
plain text or unformatted pod.)
如果您碰巧将 PAGER
设置为 less
,那么它将使用该值。但是 less
将显示转义字符,如您的示例所示,除非您向命令添加选项,例如 -R
。对 PAGER
这样做可能会干扰其他应用程序,因此 perldoc
首先查找它自己的变量 PERLDOC_PAGER
.