如何使用OptionParser水平对齐多行CLI帮助文本

时间:2016-10-03 16:23:34

标签: ruby rubygems command-line-interface

我正在尝试使CLI Ruby gem my_command --help的输出更清晰。

有一些CLI选项和标志需要几个句子来解释它们。当解释太长而无法放入常规终端宽度视图时,我还没有找到一种方法在列中正确对齐此文本。

我希望有这样的东西:

ab --help as an example ab --help作为示例,请注意一些标志如何通过正确的对齐方式进行多行解释。

现在,我在OptionParser中做了类似的事情,以便在我们需要多行来解释某些内容的情况下将文本对齐在其列中:

opts.on("-d", "--directory PATH", String, "Directory to save the downloaded files into\n\t\t\t\t     Default is ./websites/ plus the domain name") do |t|
  options[:directory] = t
end

它正在运作,但是到处强制格式化\t到处都不是最佳也不干净。另外,我可以看到在其他终端配置中没有正确格式化的情况。

如何以干净的方式将多行CLI帮助文本与OptionParser水平对齐?

1 个答案:

答案 0 :(得分:1)

您可以通过向opts.on添加更多参数来强制换行而无需添加标签:

opts.on("-d", "--directory PATH", String, 
        "Directory to save the downloaded files into",
        "Default is ./websites/ plus the domain name") do |t|
  options[:directory] = t
end

官方文档中没有明确记录,但您可以在complete example中看到它。