如何在 neovim 中获得可读的 Data::Printer 输出?

How to get readable Data::Printer output inside neovim?

我不确定我需要在这里调整什么。当我从 neovim 中执行我的 Perl 文件时,我得到了不可读的输出。我正在使用 Data::Printer 1.000004

nvim --version
NVIM v0.7.0-dev+1135-gfdea15723
cat ~/.dataprinter
array_max = 5000
end_separator = 1
filters = DB, DateTime, JSON, URI
hash_separator = ' => '
index = 1
scalar_quotes = '
#!/usr/bin/env perl

use strict;
use warnings;
use feature qw( state );
use List::SomeUtils qw( part );

my $i = 0;
my @part = part { $i++ % 2 } 1 .. 8;

use DDP;
p @part;
~
~
~
~
~
~
~
~
~
~
~
~
~
~

:call ExecFile()
:!"/Users/olafalders/Documents/perl/part.pl"
^[[0;38;2;102;217;239m[^[[0m
    ^[[0;38;2;161;187;197m[0] ^[[0m^[[0;38;2;102;217;239m[^[[0m
            ^[[0;38;2;161;187;197m[0] ^[[0m^[[0;38;2;247;140;106m1^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[1] ^[[0m^[[0;38;2;247;140;106m3^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[2] ^[[0m^[[0;38;2;247;140;106m5^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[3] ^[[0m^[[0;38;2;247;140;106m7^[[0m^[[0;38;2;102;217;239m,^[[0m
        ^[[0;38;2;102;217;239m]^[[0m^[[0;38;2;102;217;239m,^[[0m
    ^[[0;38;2;161;187;197m[1] ^[[0m^[[0;38;2;102;217;239m[^[[0m
            ^[[0;38;2;161;187;197m[0] ^[[0m^[[0;38;2;247;140;106m2^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[1] ^[[0m^[[0;38;2;247;140;106m4^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[2] ^[[0m^[[0;38;2;247;140;106m6^[[0m^[[0;38;2;102;217;239m,^[[0m
            ^[[0;38;2;161;187;197m[3] ^[[0m^[[0;38;2;247;140;106m8^[[0m^[[0;38;2;102;217;239m,^[[0m
        ^[[0;38;2;102;217;239m]^[[0m^[[0;38;2;102;217;239m,^[[0m
^[[0;38;2;102;217;239m]^[[0m

实际输出应如下所示:

[
    [0] [
            [0] 1,
            [1] 3,
            [2] 5,
            [3] 7,
        ],
    [1] [
            [0] 2,
            [1] 4,
            [2] 6,
            [3] 8,
        ],
]

Data::Printer 自我描述为:

colored & full-featured pretty print of Perl data structures and objects

您看到的垃圾是程序包用来为输出着色的转义序列,执行脚本的 shell 无法理解。

要解决 script/environment 级别的问题,我建议阅读 the documentation of the package,其中提到了 colored 属性 和 ANSI_COLORS_DISABLED 环境多变的。这应该是你的第一步。

为了在编辑器级别解决它,我建议使用 built-in :help :terminal,它支持 ANSI 颜色,而不是 :!,后者不支持。

另外,这里不涉及quickfix window。