For many, many years now when I want to browse a man page about something I’ll type man X into my terminal, substituting X for whatever it is I wish to learn about. Depending on the manual, it’s short and therefore easy to find what I want, or I am deep in the woods because I’m trying to find a specific flag that appears many times in a very long document. Woe is me if the flag switch is a bare letter, like x.

And let’s say it is x. Now I am searching with /x followed by n n n n n n n n N n n n n n. Obviously I’m not finding the information I want, the search is literal (not fuzzy, nor “whole word”), and even if I find something the manual pager might overshoot me because finding text will move the found line to the top of the terminal, and maybe the information I really want comes one or two lines above.

So… there HAS to be a better way, right? There has to be a modern, fast, easily greppable version to go through a man page. Does it exist?

P.S. I am not talking about summaries like tldr because I typically don’t need summaries but actual technical descriptions.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    11
    ·
    6 months ago

    You can just grep the help output

    $ rsync --help 2>&1 | grep -E '^ *(--append-verify|--progress|--archive)'
    --archive, -a            archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
    --append-verify          --append w/old data in file checksum
    --progress               show progress during transfer
    

    So it should be possible to create a simple script to do that. Similarly one can output the man document as text to stdout, which in turn can be grepped. I have no grep command at hand to do this in a useful way:

    man grep | col -b