3

我正在使用 jshell 并希望截断 jshell 控制台上显示的非常大的消息。

为此,我得到了 /set truncate 命令,它说:

如果值太长,那么它们在显示时会被截断。使用 /set truncation 命令设置显示的值的最大长度。如果没有使用该命令输入设置,则显示当前设置。

以下是截断的相关选择器类型。

|  
|  The case selector kind describes the kind of snippet.  The values are:
|   vardecl    -- variable declaration without init
|   varinit    -- variable declaration with init
|   expression -- expression -- note: {name}==scratch-variable-name
|   varvalue   -- variable value expression
|   assignment -- assign variable
|  The action selector kind describes what happened to the snippet.  The values are:
|   added     -- snippet has been added
|   modified  -- an existing snippet has been modified
|   replaced  -- an existing snippet has been replaced with a new snippet

任何人都可以建议案例选择器或操作选择器的用例吗?

4

1 回答 1

1

想要截断 jshell 控制台上显示的非常大的消息。

这取决于您要截断哪种类型的消息。案例选择器将帮助您确定类型和操作选择器将帮助您决定何时这样做。例如添加片段、修改等。

如何在 jshell 的 /set truncation 命令中使用选择器?

同一文档中的示例很好地列出了这些:

/set truncation mymode 45 expression
/set truncation mymode 0 varinit-modified,replaced

建议用例选择器或动作选择器的用例?

定义反馈模式的文档#设置截断部分:

mymode: /set truncation mymode 100

mymode: /set truncation mymode 300 varvalue

# default truncation
mymode: String big = IntStream.range(0,1200).mapToObj(n -> "" + (char) ('a' + n % 26)).collect(Collectors.joining())
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv ... fghijklmnopqrstuvwxyzabcd"

# default truncation
mymode: big + big
$2 ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi ... yzabcdefghijklmnopqrstuvwxyzabcd"

# we can see the overriden truncation value in the next statement
mymode: big
big ==> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl...jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd"`
于 2017-12-20T05:10:59.243 回答