Ocaml 通过添加选项卡以不同级别组织输出

Ocaml 通过添加选项卡以不同级别组织输出,ocaml,Ocaml,我的程序输出大量信息。为了更好的可读性,一种方法是通过添加不同数量的选项卡将它们组织在不同的级别。例如,以下布局可以通过在打印某些内容之前始终打印多个选项卡来实现,并且选项卡的数量可以由全局参考变量控制 level_1_begin ... ... level_2_begin ... ... level_3_begin ... ... level_3_end level_2_end ... ... level_2_begin level

我的程序输出大量信息。为了更好的可读性,一种方法是通过添加不同数量的选项卡将它们组织在不同的级别。例如,以下布局可以通过在打印某些内容之前始终打印多个选项卡来实现,并且选项卡的数量可以由全局参考变量控制

level_1_begin
... ...
   level_2_begin
   ... ...
     level_3_begin
     ... ...
     level_3_end 
   level_2_end
... ...
   level_2_begin
   level_2_end
... ...
level_1_end   
但是,这种方式有一个问题:当一个文本很长并且必须转到另一行时(由于窗口的宽度),它将忽略选项卡并从最左边开始。比如说,

level_1_begin
... ...
   level_2_begin
   a very very very very very very very very very very
very very very very long line
   ... ...
   level_2_end
相反,我希望显示如下:

level_1_begin
... ...
   level_2_begin
   a very very very very very very very very very very 
   very very very very long line
   ... ...
   level_2_end

是否有人知道OCaml是否有任何解决方案使之成为可能?

使用。有一个关于盒子的教程。

是什么让它“转到另一行”?在换行窗口中查看?或者在某个地方确实有一些代码插入了新行?如果是后者,也许您可以更改代码以符合当前缩进。这意味着“在换行窗口中查看”。因此,这完全取决于窗口的宽度:如果窗口足够大,长文本不会转到另一行……在我看来,如果允许任意窗口宽度,您无法解决此问题。它必须通过寡妇中的代码来解决。您可以使用@Drup建议的格式模块将行预包装到某个宽度。窗口宽度或多或少是固定的(即,我的屏幕宽度),因此将行预包装到某个宽度对我来说是合适的。。。