Or is there maybe a way to set the pager for all help related queries to some command? I’m using bat and would like to pipe all --help through | bat --language=help by default for the syntax highlighting and colored output… Or if you know a lower effort way to color the output of --help let me know.

  • RedWeasel@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    6 hours ago

    I think your best bet to to create a script called help and run “help <command>” and the script would do the rest.

    • allywilson@lemmy.ml
      link
      fedilink
      arrow-up
      5
      ·
      6 hours ago

      I think this is the correct answer in all honesty. Create a new script like help (or man2 or whatever) that pipes the argument through bat for you.

    • 𞋴𝛂𝛋𝛆@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 hours ago

      There has to be a hook somewhere for every command that executes. I’m not sure, but something in the chain after using set -x then running any terminal command likely is on the right path to doing this. (If you try set -x, you can turn it off with set +x). set -o options are another I’m not very familiar with but might be related.

      • friend_of_satan@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        4 hours ago

        set -x configures the running process, your shell. This is a posix standard flag. See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html

        there has to be a hook somewhere for every command that executes

        Why do think this? I’m not aware of any shells that have such a feature. I’m not saying it couldn’t be done, but it would be a new feature.

        I like the other suggestion of having a wrapper script that does what you need.

        • 𞋴𝛂𝛋𝛆@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          3 hours ago

          I don’t mind the idea of a wrapper it is just that most of the time, I’m looking at the last command, backspacing and then adding --help. After thinking about it, I will likely go the wrapper route, but add arguments that use the last command in terminal history automatically so that typing help- with no args runs a --help flag on that last command, 2::5 would add additional flags or arguments from the last command before --help and help- with any other args calls those instead of using history.

      • RedWeasel@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 hours ago

        You’d be intercepting all commands just to verify if they have a help flag and then if not executing them as they were intended. If the intercept got broke, then the shell would be completely broken.

          • RedWeasel@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            edit-2
            5 hours ago

            Not everything uses groff. A lot will have their own function or another.

            Edit: I think for what you indicting you are wanting to try you’d need to either patch your shell of choice or write your own.

            Edit2: If you did patch it, the best way I can think of to get something upstreamed would be to patch bash to use CTRL-Enter to automatically pipe the output to the default pager defined in BASHPAGER followed by PAGER if it doesn’t exist. Then set the BASHPAGER to your “bat” command.

            • Ephera@lemmy.ml
              link
              fedilink
              English
              arrow-up
              1
              ·
              5 hours ago

              Frankly, I would be surprised, if anything uses groff for displaying --help, unless it shows the man page for that.
              The most basic implementation of --help is a manually formatted multi-line string written into the source code, which gets printed as-is.
              For dynamic layouting, you do need more logic, but rendering it to groff source code first does not make that easier. For tabbing, you print an appropriate number of \t.

            • 𞋴𝛂𝛋𝛆@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              5 hours ago

              At this point, someone has to have already made a prettier shell or terminal that is configured like this by default. Hideous 1950s monocolor --help output can’t be a novel issue in 2025.