mirror of
https://github.com/clap-rs/clap
synced 2025-01-08 10:48:45 +00:00
c90a4eabae
In looking at other help output, I noticed that they use two spaces, in place of clap's 4, and it doesn't suffer from legibility. If it doesn't make the output worse, let's go ahead and make it as dense so we fit more content on the screen. This is a part of #4132
79 lines
1.8 KiB
Markdown
79 lines
1.8 KiB
Markdown
[`pacman`](https://wiki.archlinux.org/index.php/pacman) defines subcommands via flags.
|
|
|
|
Here, `-S` is a short flag subcommand:
|
|
```console
|
|
$ pacman -S package
|
|
Installing package...
|
|
|
|
```
|
|
|
|
Here `--sync` is a long flag subcommand:
|
|
```console
|
|
$ pacman --sync package
|
|
Installing package...
|
|
|
|
```
|
|
|
|
Now the short flag subcommand (`-S`) with a long flag:
|
|
```console
|
|
$ pacman -S --search name
|
|
Searching for name...
|
|
|
|
```
|
|
|
|
And the various forms of short flags that work:
|
|
```console
|
|
$ pacman -S -s name
|
|
Searching for name...
|
|
|
|
$ pacman -Ss name
|
|
Searching for name...
|
|
|
|
```
|
|
*(users can "stack" short subcommands with short flags or with other short flag subcommands)*
|
|
|
|
In the help, this looks like:
|
|
```console
|
|
$ pacman -h
|
|
package manager utility
|
|
|
|
Usage: pacman[EXE] <COMMAND>
|
|
|
|
Commands:
|
|
query -Q --query Query the package database.
|
|
sync -S --sync Synchronize packages.
|
|
help Print this message or the help of the given subcommand(s)
|
|
|
|
Options:
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
|
|
$ pacman -S -h
|
|
Synchronize packages.
|
|
|
|
Usage: pacman[EXE] {sync|--sync|-S} [OPTIONS] [package]...
|
|
|
|
Arguments:
|
|
[package]... packages
|
|
|
|
Options:
|
|
-s, --search <search>... search remote repositories for matching strings
|
|
-i, --info view package information
|
|
-h, --help Print help information
|
|
|
|
```
|
|
|
|
And errors:
|
|
```console
|
|
$ pacman -S -s foo -i bar
|
|
? failed
|
|
error: The argument '--search <search>...' cannot be used with '--info'
|
|
|
|
Usage: pacman[EXE] {sync|--sync|-S} --search <search>... <package>...
|
|
|
|
For more information try --help
|
|
|
|
```
|
|
|
|
**NOTE:** Keep in mind that subcommands, flags, and long flags are *case sensitive*: `-Q` and `-q` are different flags/subcommands. For example, you can have both `-Q` subcommand and `-q` flag, and they will be properly disambiguated.
|
|
Let's make a quick program to illustrate.
|