ble.sh
nushell
Our great sponsors
ble.sh | nushell | |
---|---|---|
50 | 212 | |
1,980 | 29,485 | |
- | 4.0% | |
9.1 | 9.9 | |
18 days ago | 6 days ago | |
Shell | Rust | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ble.sh
-
[Release v0.2.0] promkit: A toolkit for building interactive command-line tools in Rust
So could someone say use this to reimplement blesh in Rust?
- After years of bash, I actually found a shortcut I never heard about.
-
Which Shell?
Bash + ble.sh = fish like interactive features but still bash.
-
Sweet Shell: With Oh-My-Zsh, SpaceVim, Starship, True Color, and Demo Mode
> Autocompletion is one thing zsh does better, and that alone is worth it IMO. It can autocomplete things other than filenames and even gives you a short description for each of the subcommands or CLI options in the completion candidates. For the most common commands, this works without even having to install third party completion scripts.
The joke here is: All this requires additional scripts / configs. Whether bundled or not…
With those scripts / config there is no difference between shells.
> Syntax highlighting is useful as well, though that requires the use of a third party plugin. You can detect quoting errors, unmatched braces, missing commands, incorrect filepaths before hitting enter. It's indispensable in an interactive shell because that's where you write convoluted one-off one-liners.
https://github.com/akinomyoga/ble.sh
> In general, zsh is extensible and offers more capabilities than bash.
Nobody ever could show me even one feature that isn't available in almost all popular shells!
> But to feel the difference, you need to configure it and enable the nice features.
Yeah sure. When you tune your ̵c̵a̵r̵ shell it has nice features afterwards…
That's true for any shell as I see it.
---
I for my part don't like Unix shell. Even after 20 years of usage (as since then Linux is my only OS).
Also I've never understood what's the case about zsh. Nobody could ever answer the question why it's anyhow "better" or even show features not available elsewhere.
I came to the conclusion that zsh is just a stupid hype of "cool kids". It's the same as with the car tuning crowd.
A truly better shell would be much different than a Unix shell. There are some experiments out there but nothing really convincing.
So I continue to stay with the not so cool default. As it's most compatible and available everywhere.
But please wake me up when there is some real innovation regarding shells!
> With those scripts / config there is no difference between shells.
As I wrote in my original comment, bash only does filepath completion most of the time even with third party completion scripts. And I have never seen bash
> https://github.com/akinomyoga/ble.sh
ble.sh is impressive work, but it's a hack that won't be as reliable or compatible without built-in support for programmatic manipulation of the command line buffer in bash. ble.sh diverts key input from readline and reimplements its features. It contains workarounds for specific terminals, and scripts have to be modified to accommodate ble.sh. IIRC FZF's shell integration required modifications to work with ble.sh.
> Nobody ever could show me even one feature that isn't available in almost all popular shells!
Read the parts of my original comment which you haven't quoted.
> When you tune your ̵c̵a̵r̵ shell it has nice features afterwards…
Only to the extent that the shell lets you.
> I came to the conclusion that zsh is just a stupid hype of "cool kids". It's the same as with the car tuning crowd.
That was uncalled for.
- Does Bash have something like Powershell's MenuComplete?
-
Fuzzy file completion in bash
You might try blesh. It has a nice completion for files and variables in bash
-
Bash 5.2
Nice, there's also ble.sh -- a bash replacement of readline that has zsh/fish-like syntax colors and completion. It is actively developed and the maintainer has implemented 2 features I've requested in a matter of hours.
If you want to check it out: https://github.com/akinomyoga/ble.sh
(Still, I personally believe these features are overrated and don't actually bring in more usability or comfort to the command line experience)
-
Is there a way to make Konsole act like it does in Manjaro?
Yea, there is also ble.sh. I haven't used them myself because I wrote a simple one of my own to scratch my itch. What do you like the most about oh-my-bash? They don't have the same capabilities as other shells, though.
-
How to get terminal autocomplete like this?
Sadly, no. But if you want to try one of zsh feature is menu complete, you can install ble.sh
nushell
- Xonsh: Python-powered, cross-platform, Unix-gazing shell
-
Fish shell 3.7.0: last release branch before the full Rust rewrite
Any thoughts on fish as compared to nushell [0]? It's similar to PowerShell in its philosophy and is also written in Rust.
That or https://www.nushell.sh/ which seems to be more interesting as it could be an equivalent to PowerShell for Unix.
-
jc: Converts the output of popular command-line tools to JSON
> In PowerShell, structured output is the default and it seems to work very well.
PowerShell goes a step beyond JSON, by supporting actual mutable objects. So instead of just passing through structured data, you effectively pass around opaque objects that allow you to go back to earlier pipeline stages, and invoke methods, if I understand correctly: https://learn.microsoft.com/en-us/powershell/module/microsof....
I'm rather fond of wrappers like jc and libxo, and experimental shells like https://www.nushell.sh/. These still focus on passing data, not objects with executable methods. On some level, I find this comfortable: Structured data still feels pretty Unix-like, if that makes sense? If I want actual objects, then it's probably time to fire up Python or Ruby.
Knowing when to switch from a shell script to a full-fledged programming language is important, even if your shell is basically awesome and has good programming features.
-
Ripgrep is faster than {grep, ag, Git grep, ucg, pt, sift}
Maybe if the "popular" shells, but http://www.nushell.sh/ is looking better and better
- "<ESC>[31M"? ANSI Terminal security in 2023 and finding 10 CVEs
-
jq 1.7 Released
Yeah agreed, especially now that PowerShell is available cross-platform.
Nushell[1] also seems like a promising alternative, but I haven’t had a chance to play with it yet.
-
The Case for Nushell
I also discovered an existing discussion[1] related to this topic which includes a link[2] to a "helper to call nushell nuon/json/yaml commands from bash/fish/zsh" and a comment[3] that the current nushell dev focus is "on getting the experience inside nushell right and [we] probably won't be able to dedicate design time to get the interface of native Nu commands with an outside POSIX shell right and stable.".
[0] https://gitlab.com/RancidBacon/notes_public/-/blob/main/note...
[1] "Expose some commands to external world #6554": https://github.com/nushell/nushell/issues/6554
[2] https://github.com/cruel-intentions/devshell-files/blob/mast...
[3] https://github.com/nushell/nushell/issues/6554#issuecomment-...
Today I learned (after disappearing down a rabbit hole after reading the linked article) that it's actually possible to begin to use & benefit from nushell's structured data pipe feature without changing one's current shell.
Structured data pipes have always been my primary reason for keeping an eye on nushell's development but after looking at the project's documentation again today it all still seemed "too much initial effort with uncertain outcome".
Because I don't want to switch my shell (not because bash is good but because it's not a priority to justify the expenditure of effort), I just want to have structured data in pipes within bash!
Turns out it's as easy as:
* nu --commands 'ls | where size > 1MiB'
(Where `nu` is the nushell binary being called from your existing shell prompt.)
Or, as more complete flow of data example:
* echo "[1,2,3]" | nu --stdin --commands 'from json | to json' | cat
Now you can fit nushell within your existing workflow where ever it's useful enough for you--without needing to commit to changing your entire shell.
(And this isn't the only or necessarily the best way to arrange things for the communication with bash--there's "^" & "externals" & "command signatures" & "from ssv" etc too.)
And nushell does have some nifty tools such as `explore` with `:try` to interactively build a processing pipeline.
But this information doesn't seem to be documented anywhere in the "book" or other introductory material. It only seems to be documented in the help message of the `nu` binary--which I almost didn't even get as far downloading today.
But then I found the help text in the source, so decided to try it again: https://github.com/nushell/nushell/blob/fd4ba0443d01e67f6304...
If the structured data pipes is one of the main appeals for you, maybe try this approach out?
What are some alternatives?
bash-it - A community Bash framework.
fish-shell - The user-friendly command line shell.
elvish - Powerful scripting language & Versatile interactive shell
starship - ☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
PowerShell - PowerShell for every system!
alacritty - A cross-platform, OpenGL terminal emulator.
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
zsh-syntax-highlighting - Fish shell like syntax highlighting for Zsh.
volta - Volta: JS Toolchains as Code. ⚡
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
oh-my-bash - A delightful community-driven framework for managing your bash configuration, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
jq - Command-line JSON processor [Moved to: https://github.com/jqlang/jq]