关闭在Windows 7上的perl-debug-m ansi转义序列

6
在Windows 7的cmd.exe上,perl6-debug-m脚本输出ansi转义序列以设置颜色,我想。我该如何抑制这些代码或至少使它们有效?在使用Perl 6之前,我已经使用Perl 4和Perl 5工作了20多年。由于我正在尝试从Perl 5移植一个程序,所以我需要在Windows上实现这个功能。
C:\rakudo\bin\lib>perl6 -v
This is Rakudo Star version 2018.04.1 built on MoarVM version 2018.04.1
implementing Perl 6.c.

C:\rakudo\bin\lib>perl6-debug-m
←[35m>>> LOADING ←[0m<REPL 1>
←[34m+ <REPL 1> (1 - 1)←[0m
←[34m| ←[0m←[1;33mREPL←[0m
←[34m> ←[0mquit
←[34m- ←[0mRun END blocks (y/N)?

C:\rakudo\bin\lib>perl6 -V |grep -v "moar:"
distro::auth=unknown
distro::desc=2018-05-20T09:17:12.587605-04:00
distro::is-win=True
distro::name=mswin32
distro::path-sep=;
distro::release=unknown
distro::signature=
distro::version=6.3
kernel::arch=unknown
kernel::archname=unknown-win32
kernel::auth=unknown
kernel::bits=64
kernel::desc=
kernel::hardware=unknown
kernel::name=win32
kernel::release=unknown
kernel::signature=
kernel::version=unknown
perl6::build-date=2018-05-07T10:08:20Z
perl6::codename=
perl6::implementation=Rakudo Star
perl6::language_version=6.c
perl6::libdir=C:\rakudo\share
perl6::prefix=C:\rakudo
perl6::release-number=
perl6::source-digest=688d0872d150048d083b7a499e9fc7a9e8b6ab5b
perl6::version=2018.04.1
repo::chain=inst#C:\Users\danhale\.perl6 inst#C:\rakudo\share\perl6\site inst#C:\rakudo\share\perl6\vendor inst#C:\rakudo\share\perl6 ap# nqp# perl5#

你能使用powershell吗?它似乎与ANSI兼容,并允许一些配置选项 - jjmerelo
谢谢您的建议,但对我没有用。在powershell下,perl6-debug-m.bat脚本仍然输出转义序列,而不是颜色变化。`C:\ Users \ danhale> powershell Windows PowerShell 版权所有(C)2009年Microsoft Corporation。 保留所有权利。PS C:\ Users \ danhale> perl6-debug-m ←[35m>>> LOADING ←[0m <REPL 1> ←[34m+ <REPL 1>(1-1)←[0m ←[34m| ←[0m←[1;33mREPL←[0m ←[34m> ←[0m' - Dan Hale
你可能需要安装类似于这个的程序... https://github.com/adoxa/ansicon/ - jjmerelo
1个回答

5

目前没有办法禁用它们(我刚刚检查了调试器界面的源代码以验证这一点)。之前我在Windows上使用ANSICON来处理生成ANSI颜色代码的应用程序,包括Perl 6调试器,并且记得它可以正确显示这些代码。


谢谢。那个有效。我发现每次打开新的命令窗口时都需要运行ansicon。我编写了一个包装脚本p6db.cmd,以防万一每次都运行它。 @ ANSICON.EXE c:\rakudo\bin\perl6-debug-m.bat "%*" - Dan Hale
现在我已经阅读了ansicon的文档,我意识到可以通过使用-i标志一次性调用它,使其永久地应用于当前和未来的cmd.exe调用。因此,我的p6db包装脚本是不必要的。 - Dan Hale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接