14 ms·
New Features in the Fish Shell
- bitcharmer 6y agoThis, especially the long-awaited introduction of logical operators (&&, ||) is most welcome. In the past I used bash then zsh then migrated to fish and not looking back. If you work in a shell a lot I can't recommend it enough; it will boost your productivity. Especially with tons of cool extras like oh-my-fish. Huge thanks to all the contributors; keep up the good work!
- maximilianroos 6y agoTo preface — I love Fish — "Finally, a command line shell for the 90s" is an apt description. I use it every day. But I haven't managed to recommend it to beginners. There are so many bash instructions out there, and translating between bash and fish isn't easy for a beginner. That's a great shame and missed opportunity, because beginners would in particular value a nice shell. The shell is often one of the harder tools to learn — e.g. I find beginners are more comfortable in a Jupyter Notebook than they are the shell. I'm not sure whether there's a way of combining fish's ease of use with a notion of compatibility — maybe a "bash mode" for beginners, which accepts bash commands? Or error messages which return translated commands? (I recognize not all commands can be translated, but all of those that would be run by a beginner can be)
- zamadatix 6y agoHave you seen https://www.oilshell.org/ https://www.oilshell.org/
- SAI_Peregrinus 6y agoOil is more focused on making shell scripting nicer, Fish is more focused on making shell interaction nicer. Both are cool projects, just slightly different focus.
- oblio 6y agoIf Oil makes error checking and error messages nicer, it will have provided an awesome service to the community.
- jiehong 6y agoUsually, those commands can be run in bash from fish with a bash -c, or from a file.
- SAI_Peregrinus 6y agoOr via Bass[1], for things that modify the environment. [1] https://github.com/edc/bass https://github.com/edc/bass
- pjmlp 6y agoActually it is more "Finally, a command line shell for the 80s". "Xerox Alto" https://www.computerhistory.org/revolution/input-output/14/347 https://www.computerhistory.org/revolution/input-output/14/3... Having grown through the UNIX adoption in the enterprise, it kind of feels ironic that nowadays bash is kind of seen as the UNIX shell, and in those days it was just one among many possibilities to configure on /etc/passwd
- snazz 6y agoBash is definitely seen as the "Linux shell", but most users of non-Linux Unixes and Unix-likes don't use Bash. macOS, for instance, now uses Zsh out of the box (although most Bash one-liners still run unmodified in Zsh). But Linux is the majority of the Unix-like market, so it (and therefore Bash) dominates.
- tssva 6y agomacOS just recently switched to zsh as the default and doesn't change the shell for existing users so I imagine it is likely the majority of macOS users are still using bash.
- snazz 6y agoTrue, although it gives you a pretty prominent notice that Zsh is now the preferred shell when you start Terminal for the first time after updating to Catalina.
- mixmastamyk 6y agoI think it's referencing the color support that didn't really hit until the 90s.
- binaryanomaly 6y agoJust enter "bash" when you need bash and exit it once you're done. Barely need this but sometimes it's useful. Fish imho offers superb usability, wouldn't want to miss it.
- lighthazard 6y agoYou lose all the fish goodies when you do this, no?
- Zardoz84 6y agoyou only need to paste a line or two of bash. it's what I did when I have a problem with some online help that put a line that only works on bash
- binaryanomaly 6y agoexactly.
- riyadparvez 6y agoSome commands are compatible with bash, but not compatible with zsh. I do the same thing when using zsh.
- hinkley 6y agoIt's a chronic problem on work projects that people write shell scripts without a shebang operator at the top. Obscure error messages are usually how I find out someone is using zsh, fish, or some other shell. I fix what I can, but it's like mopping up water during a rainstorm. Yes it's better than doing nothing, but also there will be more in twenty minutes so don't make any plans.
- azernik 6y agoOne way I force people (mostly myself) to include shebang lines: Have a scripts directory in my repo that mixes shell and python scripts with no file extensions and executable bits set. If I don't put a shebang, it just doesn't run. Of course, this requires you to have firm control of code style policies.
- maple3142 6y agoBut, does shebang works when you want to source some files?
- duckerude 6y ago> Or error messages which return translated commands? Fish does this in some cases: ~> echo $(true) fish: $(...) is not supported. In fish, please use '(true)'. echo $(true) ^ > (I recognize not all commands can be translated, but all of those that would be run by a beginner can be) Not all of them, unfortunately. Consider `while true; do something; done`. Fish interprets this as an unclosed while loop, where `do` and `done` are ordinary commands. So if you enter it you don't get a syntax error, fish just waits for more input until you enter `end`. The same goes for `if` and `for`.
- maximilianroos 6y agoGood point on the loop, I hadn't thought about that, thanks for correcting me. On the error messages, I was thinking even clearer for beginners, giving them the whole statement, to avoid uncertainties around where the quotes should be included in '(true)'. Maybe even a shortcut to paste the corrected line in their terminal. echo $(true) ^ fish: $(...) is not supported. In fish, please use '(true)', like: echo (true) Alt+r will insert this line in your terminal.
- alan_n 6y agoI wish someone had recommended fish to me as a beginner. When I discovered it I was finally able to write some aliases and scripts without copy/pasting, overdoing it by resorting to a real programming language, or wasting an entire day trying then giving up. Concerning bash instructions, it's not that hard to translate them imo, or you can just use bass or just pop into bash for a second.
- ilaksh 6y agoIt actually doesn't come up that often. A lot of times you can just either A) paste one line at a time or B) use double quotes. But what I do is I run fish manually on top of bash. If I have an issue, I just type exit and then try to paste the commands in again. Then when I am done I restart fish.
- chubot 6y agoThis is the point of Oil -- having a smooth upgrade from bash. The interactive shell ended up being more work than I anticipated. So I'm looking for people who want to run with it either as a separate project or part of Oil. http://www.oilshell.org/blog/2020/02/recap.html#fish-oil-is-a-good-idea-link http://www.oilshell.org/blog/2020/02/recap.html#fish-oil-is-... Another option is to link Oil as a C++ library into another shell, which is starting to become possible. Oil handles all the difficult language and compatibility issues, and encapsulates them, so it's a great complement to someone who only wants to work on the interactive shell. Even though it cleans up many legacy warts, Oil runs thousands of lines of real bash programs: https://github.com/oilshell/oil/wiki/Shell-Programs-That-Run-Under-OSH https://github.com/oilshell/oil/wiki/Shell-Programs-That-Run... Posts on the interactive shell: https://www.oilshell.org/blog/tags.html?tag=interactive-shell#interactive-shell https://www.oilshell.org/blog/tags.html?tag=interactive-shel...
- Osiris 6y agoI found that adding the "&&" operator recently has fixed that for a lot of common cases. I still prefer the "; and" syntax though.
- markstos 6y agoExtra compatibility has been added lately, like && and ||. More bash syntax Just Works now. I think it's fair to say "If it doesn't work in fish, just type `bash` to enter a bash shell and try again."
- mxcrossb 6y agoI don’t think this is such a big deal. Every programmer needs to become sufficient in bash because odds are you’re going to log into another computer which only has bash or csh, and likely you need to modify someone’s bash script. It’s probably best for beginners to learn bash first, and for intermediate users to switch to fish once they understand the concepts.
- dorianmariefr 6y agohappy user of fish with very few simple customizations: set fish_greeting function fish_prompt echo (set_color green)(prompt_pwd)(set_color normal)'> ' end edit: also there is a change that didn't get mentioned: fish now accepts `A=1 echo $A` for instance without using `env A=1 echo $A` like at some point
- rightbyte 6y ago"Finally, a command line shell for the 90s" I laughed so hard when I read their motto some years ago that I had to try it. I use it mainly for the nice autocomplete and write scripts in bash ... It is nice that they added "&&" for "and" etc. It was quite annoying until I got used to it.
- miguelmota 6y agoFish Shell has a lot of cool feature but lack of `ctrl-r` functionality is preventing me from using it full time.
- brinox 6y agoYou can just type in anything you'd like as when using Ctrl+R and then just press the up arrow key to perform a fuzzy match in your history.
- grimgrin 6y agoDoes fish have its own inputrc ? I'm sure it uses inputrc or similar, giving you a thing like: $if mode=emacs "\e[A": history-search-backward "\e[B": history-search-forward $endif aka, type "fish" and press up arrow to only go through history that starts with "fish" also, how would you configure fish to use something that doesn't lean on arrows? ^r has its own useful power that can be separate from my use-case of arrows mentioned above, if not just bc you don't have to move off the homerow ;)
- snazz 6y agoYou can press ^E to complete the current autocompletion, or keep typing a little more to disambiguate if needed. edit: this originally said ^D, which is EOF, not autocomplete :)
- miguelmota 6y agoIs possible to change the keyboard shortcut? Moving fingers from arrow keys and back is definitely slower than hitting ctrl-r
- thrwyoilarticle 6y agoYou can use ^p/^n
- krisgenre 6y agoI am using fish along with fzf[1] and it makes `ctrl-r` even better. [1] https://github.com/junegunn/fzf https://github.com/junegunn/fzf
- brightball 6y agoFor somebody who hasn’t tried it, what are the advantages over something like Oh My Zsh?
- lgunsch 6y agoI find it has two advantages. One, being quite a sophisticated auto-complete system. I haven't seen anything nearly as polished. The other advantage is it's easy to learn and configure. You can read the short manual and you'll know about every feature and keyboard shortcut that exists.
- totetsu 6y agoFish autocomplete seemed like magic when I first started using it. I does things like autocomplete file paths on the android side of adb sync commands, autocomplete on docker container hashes..
- adiM 6y agoI am a longtime zsh user and tried fish earnestly for a month or so, but gave up because I could not figure out how to ignore certain patterns while auto-completing filenames. For example, I typically edit tex files and I don't want any of the temp files to be suggested as autocomplete suggestions. In zsh, I can write zstyle ':completion:::(vim|nvim)::files' ignored-patterns '*.(aux|dvi|log|thm|idx|pdf|rel|out|tuo|tui|tuc|tmp|mpo|mpb|mpd|1|keep|pgf|fls|gz|fdb_latexmk)' (yes, tex generates so many temp files!) I couldn't figure out how to do something similar in fish
- ufo 6y agoOne thing I like about Fish is that it works great out of the box, without needing to install plugins.
- jdudek 6y agoIt’s a sane scripting language. It encouraged me to automate simple tasks, create handy functions etc. I don’t have to google the for loop syntax every time I need it.
- rubyist5eva 6y agoI think Fish is fantastic, but just can't use it because so many things rely on either Bash or Zsh. I've settled for a modest ZSH setup with Prezto and I'm pretty happy.
- lgunsch 6y agoIn my years as a dev I haven't found many true dependencies on Bash/Zsh. For Ruby, rbenv and other solutions worked. For Python, there was virtualfish to make virtualenvs work properly. Although now pyenv works out of the box with Fish. Other than that, simply adding a shebang to scripts is sufficient. That being said, I don't go and convert the shell of all my AWS instances to Fish. I just keep my local shell as Fish.
- cuddlybacon 6y agoI've been using fish for years now and cannot remember the last time something broke because it required bash but was run by fish. One thing I do differently than most is I don't make fish my system-wide default shell. I leave that as whatever the system default is. Instead I just make fish the default shell within the terminal emulator I use. Never had an issue with it, and it is much easier to setup as well.
- mattgreenrocks 6y agoYeah, I think people miss that you don't have to `chsh` your shell. Perfectly fine to make your terminal launch `fish` instead of the default shell.
- pkulak 6y agoPretty easy to drop into bash for a second to copy paste something from the internet and introduce God-knows-what onto your system. ;) You can also set Fish to start up after bashrc (or whatever), so that you don't have to translate all your startup stuff.
- thenewwazoo 6y agoI tried to use fish for a while and ended up giving up and going back to bash, mostly for one (somewhat irrational) reason: fish kept recognizing bash-isms and yelling at me about it. Clearly there's a code path to recognize the thing, so why not just do it? It already knows what I want, why post a message instead? Either interpret it, or don't.
- deleted 6y ago[deleted]
- tempay 6y agoIn the latest major version they've actually changed most of these so it's worth another try if you're so inclined.
- daveidol 6y agoI get the sentiment, but not sure I agree with the "either interpret it, or don't" part - it sounds like you are essentially saying the scripting should either match Bash completely (and thus lose out on the more modern syntax) or not offer any kind of helpful error to users. Or perhaps support both types of syntax? Personally I think it's fine to help guide new users to the new syntax without directly supporting it - this keeps Fish scripts from all devolving into the (subjectively ugly) bash format. It's like a graceful deprecation warning. Edit: although I do think ceding on the logical operators (&&, ||) was a good move since that one is so fundamental
- rovr138 6y agoThey try to point you in the right direction but aren’t making assumptions that it’s right. What happens if you loose data because of a wrong assumption?
- lvh 6y agoI've used fish in the past but went back to zsh. IIRC fish broke a bunch of times between versions and the maintainer feedback wasn't great. The maintainers of course don't owe me any of their time, so I'm not mad about it, I just don't use it anymore because I need my shell to work reliably every time I open a terminal. (I don't remember the precise problem but I'm sure I could go find it.) I now use zsh with zgen and a smattering of modules. It works fine, doesn't have the issue that you have to first translate every snippet you find to your new shell, and it's still easy for the newer shell users in your life to use.
- devnonymous 6y agoFor anyone who needs to/prefers to use bash: > One nice feature for fish history is the ability to filter through the history based on what is typed into the shell. Add this to your .inputrc ## arrow up "\e[A":history-search-backward ## arrow down "\e[B":history-search-forward > Fish does not enter any command that begins with a space into its history file, essentially treating it like an incognito command. Add "HISTCONTROL=ignorespace" to your .bashrc > A new addition in fish 3.0 is the --private flag that can be used to start fish in private mode; it stops all subsequent commands from being logged in the history file. run unset HISTFILE
- NegativeLatency 6y agoThe inputrc change is nice, but not quite the same as what fish does. If I type a part of a previous command in and then press the up arrow in fish it will only cycle through history records that contain that as a substring (which is really the killer part of the feature). (Yes I know you can do similar things in bash but you have to press other keys to put it in the history search mode)
- devnonymous 6y agoI agree, although otoh, the inputrc change is not specific to bash. It is useful for any cli that uses readline (mysql, python prompt, pgcli,...). Other useful inputrc settings I have in mine : # - when performing completion in the middle of a word, do not insert characters # from the completion that match characters after point in the word being # completed set skip-completed-text on # - displays possible completions using different colors according to file type. set colored-stats on # - show completed prefix in a different color set colored-completion-prefix on # - jump temporarily to matching open parenthesis set blink-matching-paren on set expand-tilde on set history-size -1 set history-preserve-point on
- NuSkooler 6y agoI've been almost exclusively using Fish on all my installations for a few years now. Every once in a while I have to sub to Bash, but it's very rare.
- nikisweeting 6y agoAs a long-time power user of fish for 6+ years, I cannot live without it. It's easily in my top 5 most game-changing upgrades to my dev environment. (up there with a clipboard history manager and TabNine for code autocompletion) Over the years I've amassed hundreds of fish functions for common tasks on my machines, https://github.com/pirate/fish-functions https://github.com/pirate/fish-functions. I loved it so much I started using it to write devops/deployment scripts instead of bash. That was a mistake. It has some serious limitations as a scripting language, namely lack of proper subshell support and background process control. The relevant issues have been open for years with no clear resolution in sight. (which is fair, these are very hard problems and it's an open-source project with finite resources) That's fine though, it's still my favorite interactive shell for use in a Terminal. I just make sure to write any script longer than a few lines in Bash. https://github.com/pirate/bash-utils https://github.com/pirate/bash-utils
- Osiris 6y agoI've been using fish for longer than I can remember, but I almost never write fish functions. The out of the box experience is already much better than bash/zsh (out of the box, not including plugins/etc). I also prefer the basic syntax for things like for and while looks on the command line, the way they get formatted. With bash I always had to look up the syntax because I didn't use it much. Fish, I barely have to look up things because they are pretty intuitive, for the most part. Also, no adding `export X=Y` to your .bashrc because you can just `set -U` and it automatically saves it between sessions.
- mattgreenrocks 6y agoThe best part about fish is you don't have to configure it much to be productive in it. It is really nice that the fish maintainers think hard about what should be configurable, and what sane defaults should be. This is not as common as it should be in OSS. Contrast with zsh, which has a billion knobs to tweak, and the consensus is that everyone should install a huge "community dotfile framework" (whatever that means) consisting of tons of opaque aliases and settings, some of which might make your shell startup lag. More to a specific point: I haven't had much of an issue with fish's subshell/backgrounding control. That doesn't mean that there aren't issues, just that my interactive use doesn't trip into them. I will note that you can write an async git prompt using nothing but fish itself, which I consider an advanced use case for a shell. Check it out: https://github.com/mattgreen/lucid.fish https://github.com/mattgreen/lucid.fish
- lucaspauker 6y agoI remember not switching over due to having spent years incrementally building up a bashrc. Is there a way to port it over?
- tjonsson 6y agoFun story. Couple of years ago, a few colleague's and I were casually chatting at our desk about fish shell. When suddenly we hear someone a few desk away saying with a big smile: I wrote that! We were sitting next to Axel...
- szhu 6y agoFish 3 was released almost two years ago in December 2018. It's a little weird seeing these features being referred to as "new"!
- shakna 6y agoFish 3.1.0 was February 2020, however, and includes quite a few features over Fish 3.0.0, like no longer needing `env` to set one-off variables.
- djstein 6y agothanks fish contributors. just upgraded and even simple ls -la is snapper. so excited to have normal environment variable usage
- otoburb 6y agoMany of the comments in this thread refer to the sheer inertia of millions of LOC of bash script in the wild. This seems to be the main reason why Oil shell[1] aims to be "an upgrade path from bash to a better language and runtime".[2] I wish them luck. [1] https://www.oilshell.org/ https://www.oilshell.org/ [2] https://www.oilshell.org/why.html https://www.oilshell.org/why.html
- chubot 6y agoThanks, that is indeed the purpose of Oil, and I also noticed so many comments here pointing out the compatibility issue. That is nearly "done" for Oil, as it runs thousands of lines of real bash scripts. There's a big list of known and mostly trivial differences here: https://www.oilshell.org/release/0.8.1/doc/known-differences.html https://www.oilshell.org/release/0.8.1/doc/known-differences... If you're a bash user and you want your scripts to run under Oil, I recommend testing it! If your script doesn't run, you'll probably get a better error message than bash gives you. Or you might motivate a change the OSH language (a cleaned-up bash). It's easier to change now than later. I'm still looking for help too: http://www.oilshell.org/blog/2019/12/09.html#help-wanted http://www.oilshell.org/blog/2019/12/09.html#help-wanted https://github.com/oilshell/oil/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 https://github.com/oilshell/oil/issues?q=is%3Aissue+is%3Aope... https://github.com/oilshell/oil/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 https://github.com/oilshell/oil/issues?q=is%3Aissue+is%3Aope...
- Jerry2 6y agoI gave it a try a while back but it apparently needs IPv6 to be enabled to use its web interface. Is this still the case?
- fmakunbound 6y agoIt has a web interface as well?
- mixmastamyk 6y agoI've been using fish for a long time from the 1.x branch, after a long time using bash, and tcsh before that in the 90's. Before that the primitive CMD and DOS. I like much of what the new crew (who took it over) have done, but after installing it on a new machine recently I realized I didn't like their web configuration and some defaults. Which I almost never use, but a newbie would. First, terminals have much improved in the last three decades. There's no obvious reason a curses-like app couldn't take the place of the web app. Configuring the shell from the web is rather gratuitous and weird IMHO. A second, minor concern is the use of blue hues in their syntax highlighting defaults. Blue on black is rather unreadable, hard to see on its own, weakest of the colors due to eye sensitivity. It's also bad at night-time. I'd like to see a more neutral/warmer color palette for the default. I have other nitpicks, such as their docs are not good enough on how all the types of variables work, and why you pick one or the other, for example. They moved away from the daemon, and variables no longer get propagated across shells. That was a neat feature but they removed it around the time they instituted the web server. I don't really get those design choices, but there's still no friendlier shell.
- mattgreenrocks 6y ago> They moved away from the daemon, and variables no longer get propagated across shells. Universal variable changes should be propagated across different fish processes. However, it looks like the maintainers are questioning whether they should live on.
- mixmastamyk 6y agoI had just tried it and it didn't work. But looking at the help, it needs a -U not a -u, thanks.
- ridiculous_fish 6y agofish-shell dev here. Sounds like you have been using it longer than me! We'd love to do a curses version of fish_config. I think you're right the default colors could be warmer and still work on light backgrounds (terminals don't publish their colors so the defaults have to work on light and dark). Variables are still instantly propagated, it just uses fifos instead of a daemon!
- vesche 6y agoI've been using fish as my default shell for ~3 years now. The faint gray history auto-complete / search that appears when typing commands alone is a killer feature. urxvt + fish + ranger + sauce code pro font = me loving my terminal experience a ton. Thanks fish devs!
- snypox 6y agoIf anyone here is a zsh user and interested to use the same feature: https://github.com/zsh-users/zsh-autosuggestions https://github.com/zsh-users/zsh-autosuggestions It really was a game changer for me as well.
- joseluisq 6y agoFish shell is simple great. I use it for many years on my daily development on Linux/Mac without regret it. The way how it speeds up my software development process from the command line is invaluable. However I still use Bash for writing production scripts on my servers for different reasons like compatibility, requirements, etc. But when I get my server via SSH, Fish rocks also there.
- linsomniac 6y agoI gave fish a serious try last year, and really loved the command-line completion, but the vi mode editing was a deal-breaker. It's minimally usable, in particular it doesn't support command combinations like dt/ ct/ ; d0 etc... In the end I found a history completion plugin for zsh that worked as well as fish, and ended up going back to zsh. The vi mode issue seems pretty hard to resolve, like have to completely reimplement the editing hard. You can, as an alternative, drop to a real editor if you need a real editor for the command. Here's the issue related to it: https://github.com/fish-shell/fish-shell/issues/4019 https://github.com/fish-shell/fish-shell/issues/4019 It's very interesting, but I'm pretty dead set on vi history editing, so it wasn't for me. (Edit to update the commands it has issues with)
- Gaelan 6y agoI just tried dw, cw, f/, and df/, and they all worked just fine.
- linsomniac 6y agoI was misremembering, it was the combination with motion commands: dt/ ct/ ; d0 -- if these work now you probably want to provide feedback on the issue I mentioned above, because it's still marked as open.
- Gaelan 6y agodt/ cw and d0 work, but ct/ doesn't. Seems like maybe they've hardcoded certain command-motion combinations, but not actually done it "properly." FWIW, it acts enough like vi that I never noticed until today.
- zanchey 6y agoTo reprise a previous comment, I think vi mode suffers because it's a relatively niche feature - none of the current committers use it as far as I know, and pull requests to improve it are relatively infrequent. 1.8% of the pull requests into the (not yet released) 3.2.0 are for Vi mode, which is a slight increase on previous milestones, and includes support for dh, dl, c0, cf, ct, cF, cT, ch, cl, y0, tilde, ci', ci", yi', yi", di' and di". I don't think it helps that it's this huge target area which (the small number of?) users use a slightly different 10% of, and it can be quite complex to integrate new features into existing editor state.
- lorenzfx 6y agoOne of the things that really bug me out about fish shell is how it completes history. If you type the beginning of a command, you can use the arrows to cycle through all matching history items. All items BUT THE LAST ONE. That one you have to complete with ctrl-f. And the worst thing is, this behavior is completely intentionally [0]. For some time I used a patched version of fish, but it was just too inconvenient and I went back to zsh. [0] https://github.com/fish-shell/fish-shell/issues/405 https://github.com/fish-shell/fish-shell/issues/405
- non-entity 6y agoHdjcogorkwj
- gibs0ns 6y agoMany years ago, before I discovered fish, I tried the loved by many zsh shell, but found myself spending too much time messing with the configs to get it how i wanted. On my quest to find something better and avoid coding my own, I discovered fish. fish is easily one of my all time favorite linux cheats to increase productivity, without spending hours tweaking configs. It is very usable out of the box, and includes a web-ui mode to make easy basic customization stuff like theme and PS1 var. Finding/re-using command history is a breeze, you can history -c curl # Return history that contains (-c) the word 'curl' It's one of the first pieces of software I install to new Linux desktops. I still prefer to keep my servers bare, thus I use the default bash shell there.
- rgoulter 6y agoOh, that abbreviation feature looks useful. Combine it with that idea of "prefix your local scripts with a comma" and it seems a neat way to save typing.
- danbmil99 6y agoI love fish, and use it for almost everything. The one thing I haven't been able to get it to do is to define and export environment variables properly.. So I typically open the terminal in Bash, do whatever sourcing bash scripts that set up environment variables, or do something like that by hand, then run fish. Kudos to the developers for building a great productivity tool. No tool is perfect, fish has its warts but it's made me much more productive.
- rovr138 6y agoI run it similarly. A lot of tools add bits to .profile/.bashrc/.bash_profile so this allows inheriting that. I use tmux and if has an option for setting the default shell and that’s where I set it. Open terminal, loads bash with it’s environments, then tmux loads fish.
- Ancapistani 6y agoThis is a great idea, and one that I think would fit my workflow very well! I've tried fish in the past and loved it, but moved back to zsh when I realized that writing my personal scripts in fish essentially meant that I wasn't able to share them with colleagues.
- yewenjie 6y agoFish's plugin ecosystem looks much smaller than that of zsh's. Is there some plugin or feature of zsh that fish does not have?
- rovr138 6y agoIt also has a lot built in. Anything you use on ZSH that you’re not seeing?