4 ms·
> Fish has been mentioned here (which I've used for 2+ years). It's amazing and adds a lot of good functionality. What does it add exactly? As far as I can te
by wtbob 10y ago
> Fish has been mentioned here (which I've used for 2+ years). It's amazing and adds a lot of good functionality.
What does it add exactly? As far as I can tell, it's needlessly incompatible with POSIX shells, and doesn't do as much as e.g. zsh (or even bash?).
I'm not saying that zsh & bash are the end-all, be-all of shells, but I just don't see that fish improves on them.
And honestly, for config files I think we could do a lot worse than an s-expression language.
- shakna 10y agoFish is similar to zsh in a lot of ways, but without configuration you get the best of zsh: * Syntax highlighting * Implicit cd to directory * 100,000 line history * History de-duplication * Inline auto-suggestions * Tab completion using man page data * Paginated completion * Copy/paste using X clipboard The only things I feel the need to configure on a new fish install, is PATH and my prompt. Because I'm pedantic and like things exactly so. You can get these with zsh, but it's more than apt-get install.
- enriquto 10y agoWhy the line history limit, though? I do not want that my lines get deleted silently. ever. I would rather prefer that random files on my disk are deleted, before that. Is there any shell without line history limit?
- trengrj 10y agoI made a hack that gives me an SQLite database of command line history for bash https://github.com/trengrj/recent https://github.com/trengrj/recent
- deleted 10y ago[deleted]
- shakna 10y agoYou may want to read through this [0], for a better understanding of why these limits exist, and how the high limit in fish might be enough for you. [0] https://github.com/fish-shell/fish-shell/issues/2674 https://github.com/fish-shell/fish-shell/issues/2674
- tomsmeding 10y agoUm — I'd rather not that random files on my disk be deleted. :P Rather have a history line limit in my shell.
- ridiculous_fish 10y agoHistory is limited because very large history files could make the shell slow! Shells are often used to recover from exceptional conditions (out of disk space, `rm -rf /`, etc) so it's important they be responsive no matter what. bash's history limit is by default the last 500 commands, without considering duplicates. In practice this limit is easy to exceed, which is why bash config guides recommend upping it. fish's history limit of 2^18 (~256k) commands is really more of a sanity check. Duplicate commands are counted only once, and commands are discarded by LRU (not oldest). This means history only starts being dropped after hundreds of thousands of unique commands. If you in fact run that many distinct commands, I'd love to hear more about your use case!
- IsmaOlvey 10y agoBash is still very responsive with 150k+ history entries. The only noticeable performance impact is increased startup time when the history file is not in disk cache.
- IsmaOlvey 10y agoIn bash, you can remove the limit by setting: export HISTSIZE=-1 export HISTFILESIZE=-1 When the history file is not in the disk cache, startup time will increase noticeably after a while though (think a second, maybe two).
- ridiculous_fish 10y agofish dev here. We love zsh and anyone pushing on what shells can do! Here's where I think fish fits in. The main goals of fish are: 1. Thoughtful UI that just works 2. Sane scripting zsh does more than fish, and we're happy to let it. The tradeoff is that zsh requires substantial configuration to realize that power - and once you get into the weeds, you will learn which options are incompatible with each other. zsh has 21 options controlling history, and fish has none, but you'll probably be happier with fish's defaults. fish has a smaller feature set, but that feature set just works out of the box: tab completions, syntax highlighting, autosuggestions, etc. Customizations (prompt, colors, etc) can be done with a web UI or a nice command line interface, and not arcane syntax (PS1=...) The hope is you can be more productive in your shell without needing to invest tons of time configuring and learning it.
- ChrisClark 10y agoAnd that's exactly why I love fish, I just install it and go. Thanks!
- marklgr 10y ago> adds a lot of good functionality. Parent's comment is misleading, then. As someone who already has a pretty solid grasp of Bash, when I peeked at Fish it looked like there was nothing that it would gain me -- though I understand that the preconfigured shell can be useful for people who don't have the time to learn and tweak it.
- ridiculous_fish 10y agoIf fish has a hook (har har), it would be autosuggestions. fish suggests the rest of the command as you type, like your web browser does for URLs. This feels faster than tab completions, because you can see what command you'll get ahead of time. It also lets you summon commands from history quickly, without having to think about it - just start typing. If you're a die-hard bash user, autosuggestions are the feature most likely to pique your interest and make the command line more pleasant.
- 10y ago