gpt4 book ai didi

rust - 我怎样才能得到 clap 来包装长的帮助信息?

转载 作者:行者123 更新时间:2023-11-29 08:12:12 24 4
gpt4 key购买 nike

这是一个例子:

extern crate clap;
use clap::{Arg, App};

fn main() {
let args = App::new("test")
.arg(Arg::with_name("scoring_method")
.short("s")
.long("scoring-method")
.help("Very very very very very very long long long long long help help help help help message message message message message message message"))
.get_matches();
}

导致像这样的帮助文本格式:

console example

(在代码模式下粘贴会导致 Stack Overflow 修复格式问题)

生成的确切字符串是:

'USAGE:\n    play [FLAGS]\n\nFLAGS:\n    -h, --help              Prints help information\n    -s, --scoring-method    Very very very very very very long long long long long help help help help help message\n                            message message message message message message\n    -V, --version           Prints version information'

最佳答案

Clap 有一个 max_term_width它用来包装它输出的文本。如该文档中所述,它默认为 120 个字符,这就是为什么您会看到文本最终拆分,但不是您希望的拆分位置。

如果您想设置特定的宽度,可以使用 set_term_width具有特定值。或者,您可以使用像 terminal_size 这样的 crate 获取当前终端的大小,并使用它来设置要使用的 clap 的宽度。

作为一个完整的例子:

extern crate clap;
extern crate terminal_size;

use clap::{App, Arg};
use terminal_size::{terminal_size, Width};

fn main() {
let args = App::new("test")
.set_term_width(if let Some((Width(w), _)) = terminal_size() { w as usize } else { 120 })
.arg(Arg::with_name("scoring_method")
.short("s")
.long("scoring-method")
.help("Very very very very very very long long long long long help help help help help message message message message message message message"))
.get_matches();
}

关于rust - 我怎样才能得到 clap 来包装长的帮助信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com