单击命令行帮助跨多行格式化

Click commandline help formatting across multiple lines

我正在使用一个名为 click 的库来制作命令行应用程序并定义描述,代码如下所示

def cli:
    """ Description goes here """

所以一切都很好,直到我尝试有多行。

自然我试过了

def cli:
     """ hi
         hi
         hi"""

但这并没有很好地结束。文本到处都是,看起来不错。我尝试在每一行之后添加 \n 但它只是添加到 big a space 输出最终看起来像这样:

Output:
       hi

       hi

       hi

这不可能发生的原因是我有 ascii 艺术需要线条靠在一起。

您第二次尝试的问题是该行从第一个 """ 开始,然后包括所有文本(包括白色 space)直到下一个 """。所以,当你这样做时:

def cli:
     """ hi
         hi
         hi"""

您在第一个 'hi' 之前有 1 space,然后在下一个 space 之前有 9 space。解决方案是要么将第一行向下一行删除,要么只删除其他行之前的 8 spaces。打印时每个 'hi' 应该有一致的缩进:

def cli:
    return """
         \b 
         hi
         hi
         hi"""

编辑:显然在打印文本之前单击会重新格式化文本,但根据 the docs 添加 \b 应该会禁用该行为。