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.

  • pr06lefs@lemmy.ml
    link
    fedilink
    arrow-up
    37
    arrow-down
    2
    ·
    2 years ago

    Kind of off topic, but you know what would be cool? If you had an ‘man explain’ command that would define all the flags/args in a command, like:

    man explain rsync --append-verify --progress -avz -e "ssh -p 2222" root@$dip:/sdcard/DCIM/Camera newphonepix

    Would give you:

    rsync - a fast, versatile, remote (and local) file-copying tool
          --append-verify          --append w/old data in file checksum
          --progress               show progress during transfer
          --archive, -a            archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
          --verbose, -v            increase verbosity
          --compress, -z           compress file data during the transfer
          --rsh=COMMAND, -e        specify the remote shell to use 
    

    etc.

    • thingsiplay@beehaw.org
      link
      fedilink
      arrow-up
      9
      ·
      2 years 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
      
    • gomp@lemmy.ml
      link
      fedilink
      arrow-up
      8
      ·
      2 years ago

      Here’s what I get in fish when I start writing a rsync command and hit tab to ask for completions:

      ❱ rsync --append-verify --progress -avz -
      -0  --from0                               (All *from/filter files are delimited by 0s)  --delete                   (Delete files that don’t exist on sender)
      -4  --ipv4                                                               (Prefer IPv4)  --delete-after         (Receiver deletes after transfer, not before)
      -6  --ipv6                                                               (Prefer IPv6)  --delete-before         (Receiver deletes before transfer (default))
      -8  --8-bit-output                          (Leave high-bit chars unescaped in output)  --delete-delay                 (Find deletions during, delete after)
      [more lines omitted]
      
    • Majestix@lemmy.world
      link
      fedilink
      arrow-up
      4
      arrow-down
      2
      ·
      2 years ago

      There is a Plugin for Zsh (ohmyzsh) that gives you that right in the shell. I use it all the time and rely on it. Don’t have the name on my mind though, sorry.

  • traches@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    12
    ·
    2 years ago

    I’d also like some guidance on this problem (other than “use emacs”), but searching for “ -x” will have a lower false positive rate

  • vzq@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    9
    ·
    2 years ago

    Honestly, I usually just “man command” in google.

    I know it’s wrong but my browser is tiled next to my terminal and it’s easy to look up stuff.

  • jeffreyosborne@lemm.ee
    link
    fedilink
    arrow-up
    7
    ·
    2 years ago

    I like tldr. It doesnt give incredibly in depth explanations, but it does show the basics of using most commands.

    • rotopenguin@infosec.pub
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      I have to remember to use tldr, one of these days. Some manpages get so lost in the pedantry of covering everything that the 99 percentile stuff is buried.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    5
    ·
    2 years ago

    Sorry for my previous comment. I was commenting before reading the entire post and was missing the point. On a sidenote, its often enough and helpful to just list the options with program -h or --help . Sometimes the help option has more information or is easier to understand than the man document.

    When I search for options in a man document, I usually try it with putting a dash in front of it as -x or --ignore in example. For really large documents sometimes it can help to add a space before it " -x" or a comma after it "-x, " depending on how its actually written. BTW the man program itself has a builtin help you can show by just pressing h while looking at a document.

  • PseudoSpock@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    4
    ·
    2 years ago
           man -k printf
               Search  the short descriptions and manual page names for the keyword
               printf as regular expression.  Print out any matches.  Equivalent to
               apropos printf.
    
  • Troy@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    In KDE, there used to be man: as a protocol that you could use from Konqueror or anything else for that matter. Does it still exist?

    I’m at work and cannot check.

    • Jure Repinc@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      Yup still exists. It is also available in KDE Help Center. And you can quickly jump to a man page you typing “#man” into KRunner.

  • mystic-macaroni@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    You can search via regex. For instance you know a section heading or flag is the first thing on a line preceded with spaces. I also find it earier to read with extensions for colors.