以下是一个示例:
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();
}
导致帮助文本格式如下:
(在程式码模式中贴上会造成堆栈溢出,以修正格式问题)
生成的确切字符串为:
'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'
2条答案
按热度按时间0dxa2lsx1#
Clap有一个max_term_width,它用它来 Package 输出的文本。正如该文档中提到的,它默认为
120
个字符,这就是为什么你会看到文本最终被分割,但不是你希望的地方。如果你想设置一个特定的宽度,你可以使用set_term_width来设置一个特定的值,或者,你可以使用一个类似terminal_size的crate来获取当前终端的大小,然后用它来设置
clap
要使用的宽度。完整示例:
iyzzxitl2#
现在(Clap v4.0.26)你可以启用
wrap_help
特性,这在内部依赖于terminal_size
。