6 ms·
I use `fish` as my main shell. It's closer to POSIX than eshell or oil, but it's definitely not POSIX. Personally, the main thing I like about it is that I can
by pringk02 4y ago
I use `fish` as my main shell. It's closer to POSIX than eshell or oil, but it's definitely not POSIX.
Personally, the main thing I like about it is that I can't copy paste bash commands. It forces me to read and understand and then convert. It also has some quality of life stuff I really like. I think next time I'm just going to go back to ZSH though as I feel I have learnt enough from the experience of using it that I'm no longer getting new things out of it, and I don't script in fish enough for the nicer syntax to be beneficial enough for me. Honestly, I prefer ZSH variables over fish variables too
- mejutoco 4y agoI use fish too. My favourite feature is typing part of a command and using up and down arrows to cycle through the results, as opposed to ctrl+R and...I don't remember which one. Functions are easy to define too.
- qup 4y agoctrl+R and...you keep pushing it to go back in time. In case anyone needs to know.
- robochat 4y agoYou can easily get bash to do that by adding these lines to your .inputrc file. "\e[A": history-search-backward "\e[B": history-search-forward "\e[C": forward-char "\e[D": backward-char
- guitarbill 4y agoNot wrong, but fish is so nice because it just works without any configuration. Sane defaults are a blessing. I just checked and the only things I have configured are `set fish_greeting` (i.e. empty) and some paths... Edit: Also, I don't know how, but the fish completion is magic. It seems to remember which commands I use often in which folders and in which order. I'm not sure if that's how it's implemented. Sure feels that way though.
- notamy 4y ago> It seems to remember which commands I use often in which folders and in which order. I'm not sure if that's how it's implemented. Sure feels that way though. Check ~/.local/share/fish/fish_history!
- rodrigodlu 4y agoNice to know! Nonetheless, what moved me from bash to fish was having this as granted. Now I worry only about specific higher-level functions. Also hunting each of these optimizations distracts me from my task at hand. There's other stuff as well, for instance I'm abusing `for` iterations a lot more to run the same command for lists of things. Using bash before was less ergonomic and painful.
- notorandit 4y agoYou need to restart bash to make this work. Cool.
- cube2222 4y agoMost things in fish can be achieved with customization and configuration in other shells, like zsh or bash. The point of fish is a sane set of defaults that doesn't require customization and is good enough.
- mattgreenrocks 4y agoBest feature of fish is the fact that my fish dotfiles are about 100loc max with a fully async prompt. Comparable functionality in zsh would be 500loc of ultra obscure tweaks :)
- exikyut 4y agoWhat do you mean by "fully async prompt"?
- mattgreenrocks 4y agohttps://github.com/mattgreen/lucid.fish https://github.com/mattgreen/lucid.fish It avoids pauses when doing `git status` on gigantic repos.
- manimino 4y agoIf you want zsh that acts like fish, try "fizsh".
- copper-float 4y agoThat is so cool, people really think of everything don't they?
- oblio 4y agoI checked fizsh out and the installation on Ubuntu was broken (from the package in the repo), the last commit to the repo was in 2016... It seemed promising at first but these things are all about continued investment and maintenance.
- msm_ 4y agoFish shell search and suggestions are awesome, and not comparable to what readline gives you. I don't know how it does that, but the shell understands the concept of files, commands in PATH, and CWD. So depending on the directory you are in, after typing "vim " you will get different suggestions (completable by right arrow). Somehow it knows what I mean 80% of the time.
- msm_ 4y agoAnother fish user reporting in. I don't care too much about bash compatibility. I don't even care shell scripting in my shell - when I need to write a script I write a sh script (or python for more complex ones). I just want a shell that's easy to use and user friendly. For some reason none of the other alternative shells "click" for me - I love the idea of having objects in my shell (like in nushell, or powershell), but all the implementations I've tried are just clumsy to use and get in the way. Whereas fish is awesome and works out of the box - barely need for any configuration/
- throwaway67743 4y agoAlso a fish user, the lack of bash compatibility if required is easily fixed by bash -c, or just dump it into a script with a bash shebang but most simple one liners can easily be tinkered with to make it fish compatible - case in point `for` which just needs an end in most cases
- Macha 4y agoIt's gradually got more bash compatibility, with things like X=Y run-command, &&/|| as aliases for and/or, $() expansion, changes to * to match more items. I don't think it's impossible that a future edition of fish starts to support e.g. export or a subset of bash conditionals.
- drcongo 4y agoI'm fairly sure export is already supported, but I could be missing something.
- davelondon 4y agoYup i've used fish too for many years because of it's excellent autocomplete. It's occasionally frustrating when you have to paste a bash command in, but if it doesn't work you can just spawn bash to run the command.
- v3ss0n 4y agoWhen there's something called deadline that's no longer feasible
- rovr138 4y agoI've been using fish for at least a decade. While I can't simply run bash commands, I can easily drop to a bash shell and run anything. The defaults and features are great. Scripts I also write in bash, sh, or python for compatibility. It's not much of an issue. I do remember something that used to break in my setup, but since I'm always in tmux, instead of changing the default shell (chsh -s), I just set the default for tmux to be fish. # set shell set -g default-shell /usr/local/bin/fish