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
    17
    ·
    1 day 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
      8
      ·
      1 day 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
      3
      ·
      1 day 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
        5
        ·
        1 day 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
          2
          ·
          1 day 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
        5
        ·
        1 day 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
            4
            arrow-down
            1
            ·
            edit-2
            1 day 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
              3
              ·
              1 day 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.

              • RedWeasel@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                10 hours ago

                I agree, I just didn’t want to make assumptions about how newer things work with localization these days.

            • 𞋴𝛂𝛋𝛆@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 day 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.

              • RedWeasel@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                10 hours ago

                16 Color terminals didn’t really start getting used until the 90s and early 2000s. And 256 after that. A lot of software was written back then and it would take a lot to add something that might not display well because of the terminal’s color scheme and now we have color theming.

                  • RedWeasel@lemmy.world
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    9 hours ago

                    I am getting the feeling the you are mis-understanding than each project has their own independent implementing function and that each one would need to be rewritten. There a 10 of thousands of projects. This is not some simple, change 1 project task.