这里是一个例子:
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();
}
有关帮助文本格式的提示:
(在代码模式下粘贴会导致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'
答案 0 :(得分:3)
拍手有一个max_term_width,它用于包装输出的文本。如该文档中所述,它默认为120
个字符,这就是为什么您看到文本最终 分裂了的原因,而不是您希望的那样。
如果您要设置一定的宽度,则可以将set_term_width使用特定的值。另外,您可以使用诸如terminal_size之类的条板箱来获取当前终端的大小,并使用该条板条来设置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();
}