Well I might be hooked. It didn’t take me long to reproduce the niceties in Nushell I’m used to from my zsh config. Some of the important parts were setting up zoxide with a key binding for interactive mode, switching on vi key bindings, setting up my starship prompt.
Home Manager is preconfigured for the above integrations which made things easier.
One feature that is missing that I like to use is curly brace expansion to produce multiple arguments. For example,
$ mv *.{jpg,jpeg}
Unless there is a way to do something like this in Nushell that I haven’t seen yet?
Something I enjoyed was automating a sequence of steps I’ve been running a lot lately due to a program that often partially crashes,
def nkill [name_substring] {
ps | where name =~ $name_substring | each { |p| kill$p.pid; $p }
}
I realized after writing this that I basically recreated killall -r. But it’s nice that it was so easy to make a custom command to do a very specific thing. And my version gives me a nice report of exactly what was killed.
Thanks for making this post OP! When I’ve heard mentions of Nushell I’m the past I think I conflated it with Powershell, and wrote it off as a Windows thing. (Maybe because it’s introduced as being “like Powershell”.) But now that I see that it’s cross-platform I’m enjoying digging into it!
Well I might be hooked. It didn’t take me long to reproduce the niceties in Nushell I’m used to from my zsh config. Some of the important parts were setting up zoxide with a key binding for interactive mode, switching on vi key bindings, setting up my starship prompt.
Home Manager is preconfigured for the above integrations which made things easier.
One feature that is missing that I like to use is curly brace expansion to produce multiple arguments. For example,
Unless there is a way to do something like this in Nushell that I haven’t seen yet?
Something I enjoyed was automating a sequence of steps I’ve been running a lot lately due to a program that often partially crashes,
def nkill [name_substring] { ps | where name =~ $name_substring | each { |p| kill $p.pid; $p } }
I realized after writing this that I basically recreated
killall -r
. But it’s nice that it was so easy to make a custom command to do a very specific thing. And my version gives me a nice report of exactly what was killed.Thanks for making this post OP! When I’ve heard mentions of Nushell I’m the past I think I conflated it with Powershell, and wrote it off as a Windows thing. (Maybe because it’s introduced as being “like Powershell”.) But now that I see that it’s cross-platform I’m enjoying digging into it!
Maybe this will work for expansion: https://github.com/nushell/nu_scripts/blob/main/modules/filesystem/expand.nu
It’s in the “filesystem” section, but I think it works on any string, not only paths. See the ugly duck example. I didn’t try it myself yet.
BTW the nu_scripts goodies are available in Nixpkgs, so since you are using Home Manager, it’s easy to integrate. Take a look at my config for starters: https://gitlab.com/tad-lispy/nixos-configuration/-/blob/bb614ae3639a504912db167f5bd7e6651d28f604/tad.nix#L39-47
Thanks for the tip about nu_scripts, those look handy!
The expand command is nice. I don’t see how to use it to my mv command work. But that’s not a huge deal.