4 ms·
I've been wondering this for years. It seems like the most obvious way to greatly improve CLIs, yet no one seems to talk about it...
by westoncb 8y ago
I've been wondering this for years. It seems like the most obvious way to greatly improve CLIs, yet no one seems to talk about it...
- sorahn 8y agoCheck out Fish Shell.
- eikenberry 8y agoZsh can also do this.
- NegativeLatency 8y agoBut it needs plugins, fish has it builtin. Nothing to configure
- sorahn 8y agoYup this. If I wanted to carry around a bag of plugins all day, I'd just use bash.
- meowface 8y agoOn the plus side, by picking and choosing what you want, you can get the precise performance and usability ratio that fits you best. Fish is a great shell but nothing beats the zsh plugin ecosystem.
- NegativeLatency 8y agoOr in my case: spend a bunch of time messing with and tweaking my shell config. Sometimes the tyranny of default options is helpful to getting things done.
- rtisdale 8y agoI’ve tried fish shell a few times and ended up preferring ZSH. To my understanding Fish shell doesn’t have complete BASH compatibility and it breaks many scripts. It also doesn’t seem to have nearly as wide of an adoption as ZSH so less overall community support in genera. Sure you can just specify the interpreter with hash bang but it’s something worth noting before considering a switch.
- tomaskafka 8y agoThis. Just please don't be so dogmatic, Fish, it's ok to also allow && together with AND and not break my scripts ...
- kurtisc 8y agoBash itself breaks compatibility with POSIX sh. You can supply --posix, but you can also just use bash -c from fish.
- GordonS 8y agoDo you mean it just ships with support for a list of preset commands, or can it provide autocomplete for any command? (I have no idea how that could possibly work, mind)
- ubercow13 8y agoThe latter, to an extent; it parses man pages to provide completion/help for commands
- ivanfon 8y agoSure, but configuration is more powerful. I the shell a lot, I’m not going to choose a suboptimal solution for my use case just because of a little bit of configuration.
- gumby 8y agoGosh TOPS-20 had this back in the early 1980s (and this is why bash has readline...)
- DonHopkins 8y agoYet there's no standard way for system and user programs to expose their parameters and help to the command line, like most TOPS-20 programs did. So bash's completion and help facilities pale in comparison.
- gumby 8y agoIndeed Don, why don't you extend gnu getopt to generate a special ELF section with an argument grammar and then modify bash to load this section? Shouldn't take too long and then this feature would become automatic!
- DonHopkins 8y agoAccessibility demands Tourette Syndrome Compatible noise word support.
- gumby 8y agoI am sure that can be controlled by $LOCALE
- jodrellblank 8y agoPowerShell has this; all cmdlet parameters are parsed by the PowerShell environment, so you don't have to write argument parsing code over and over; parameters to cmdlets are a standard form with many using the same common names where it makes sense. Because of that design they are long and readable words but tab completable, and ctrl-space will bring up a menu of available matches starting with what you've typed so far.
- deleted 8y ago[deleted]