• flandish@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    9 hours ago

    what’s fish got? I’m liking zsh here but am always open to a distraction instead of getting work done. :)

    • null@piefed.nullspace.lol
      link
      fedilink
      English
      arrow-up
      24
      ·
      9 hours ago

      Lovely OOTB defaults. I basically change nothing except the theme.

      Autocomplete, git context, etc. The QOL stuff you’d expect.

        • OhNoMoreLemmy@lemmy.ml
          link
          fedilink
          arrow-up
          24
          ·
          9 hours ago

          The main differentiator of fish over everything else is it prioritizes intuitive behavior over backwards compatibility.

          Zsh is to bash as c++ is to c. Most bash scripts and habits will work in zsh, but zsh is just more convenient and has more options. Fish is intentionally different.

          Do I wish fish had existed instead of bash so we had a nicer terminal experience? On the whole, yes. But I also couldn’t be bothered to learn another shell where most of the instructions online won’t be able to help you, and I ended up sticking with zsh.

        • Pika@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          7 hours ago

          This is a good way of putting it. It’s essentially ZSH with Autosuggest/complete and a theming agent. At least visual-wise.

          When you get into the scripting and the hot keys aspect of it, they reinvent the wheel and everything is different., Like for example ,!! and other bangs(I think that’s the right word?) like that are not valid on fish, And everything to do with variables is different from adding to your path to setting variables to creating functions. Also checking your error code is going to be different as well as it doesn’t follow the $x style inputs and doesn’t support IFS and globbing works differently.

          TLDR; fish is nice, but If you use it unless you want to relearn an entire type of language, keep your scripts on bash or zsh

          or if you wanna see the bigger differences fish has a dedicated bash transition page

        • Laser@feddit.org
          link
          fedilink
          arrow-up
          8
          arrow-down
          2
          ·
          9 hours ago

          Be aware that fish isn’t a POSIX-compatible shell enough, so you have to adjust syntax.

          • rtxn@lemmy.worldM
            link
            fedilink
            arrow-up
            14
            ·
            edit-2
            8 hours ago

            That isn’t incorrect, but it’s not as important as people make it out to be. Linux isn’t certified as POSIX-conformant either.

            People are way too stuck on POSIX regarding Fish specifically, but in shell scripting, POSIX compliance boils down to “can it run a pure sh script”. Bash is compliant. Zsh is partially compliant and needs to set an option to emulate sh. Fish uses a different syntax and is not compliant; if that is a problem, don’t execute sh scripts in Fish.

            POSIX compliance for shell scripts was important in the 80s and 90s when the #! directive wasn’t as commonly implemented and every script might be executed by the user’s $SHELL instead. That is no longer the case as virtually every Unix-like system’s program loader supports #!.

            • Black616Angel@discuss.tchncs.de
              link
              fedilink
              arrow-up
              2
              ·
              7 hours ago

              I use fish, but sometimes it acts weird. And lots of “just copy and past this command” kind of online solutions I have to put into bash.

              My main irk is when I want to forward a ‘*’ to a program but have to escape it.

            • Laser@feddit.org
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              6 hours ago

              It’s a cool shell, I use it as a daily driver (though I’m keeping a close eye on elvish which syntactically is even further away from classic shell), but the comments read like fish is basically zsh. And while zsh is pretty close to bash, fish isn’t.

        • null@piefed.nullspace.lol
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 hours ago

          Yup, very similar! And quite customizable as well if you want to. But the focus is on having, by default, a friendly interactive shell.

          I like that I can spin up a VM, install fish, chsh and I’m all set.