Earlier quoted context omitted.
What’s it give you that is significant?
I bet yash is great, sorry for distracting from the topic, but since you asked... It's not one killer feature, but it's a lot of small things that add up to this feeling that POSIX shells are stuck in a rut and that a better world is possible. I'm going to use docker output as an example. I know that you can ask docker for json and then use jq, but let's pretend that what you're working with isn't so friendly as dock…
Yash: Yet Another Shell
41–50 of 54 posts
Re: Yash: Yet Another Shell
#42I kind of wish there was a shell that had the option for histories localized to a directory. So I can go into a directory and then look at what I was doing when I was last in that directory. Some complicated compilation command line to compile and link a source file and a bunch of libraries that was run when I was last in that directory, for example. There'd still be the 'history' command for everything and then mayb…
Re: Yash: Yet Another Shell
#43Earlier quoted context omitted.
FYI The fish shell does this by default.
But it's not a POSIX shell
Re: Yash: Yet Another Shell
#44I kind of wish there was a shell that had the option for histories localized to a directory. So I can go into a directory and then look at what I was doing when I was last in that directory. Some complicated compilation command line to compile and link a source file and a bunch of libraries that was run when I was last in that directory, for example. There'd still be the 'history' command for everything and then mayb…
Re: Yash: Yet Another Shell
#45Earlier quoted context omitted.
I bet yash is great, sorry for distracting from the topic, but since you asked... It's not one killer feature, but it's a lot of small things that add up to this feeling that POSIX shells are stuck in a rut and that a better world is possible. I'm going to use docker output as an example. I know that you can ask docker for json and then use jq, but let's pretend that what you're working with isn't so friendly as dock…
That "detect columns" piping stuff looks very nice, though it looks like this is something that could be implemented extrashellularly (as discrete "detect" and "where" binaries)?
But as far as I know there's no portable way to write a program which can uncover enough of the pipeline to print an error message that spans multiple stages. So you get output from potentially many of them and you have to figure out who is complaining.
I'm not intimate with the implementation but it feels like nushell commands are compiled, so there's much less deduction necessary to just tell the user what is wrong in a way that considers the whole command instead of just one stage of the pipeline.
I haven't spent much time with the plugin interface yet, but the idea is that programs can register their input and output types with the shell if they want nushell to treat them like it does it's builtins. Its an extra step up front, but it seems like less of a mess than trying to coordinate types been programs without having a common touch point for them.
Re: Yash: Yet Another Shell
#46Earlier quoted context omitted.
You can do this with a zsh plugin: https://github.com/jimhester/per-directory-history
This looks promising, thanks!
function set_histfile {
export HISTFILE="$HOME/.bash_history_$(pwd | tr '/' '_')"
}
PROMPT_COMMAND="set_histfile; $PROMPT_COMMAND"
There may be other ways, but probably can't do it without PROMPT_COMMAND.Someone else mentioned "direnv", too.
Re: Yash: Yet Another Shell
#47Earlier quoted context omitted.
I kind of wish there was a project-oriented complete desktop environment, where you could enter a project and everything was context-sensitive to it. editor, files, directories, shell, browser, whatever. sort of a way to work on projects, then put them on old. and maybe meta-projects to choose, track, arrange, manage some or all projects. maybe by area of responsibility.
nix and direnv might be worth a look.
Re: Yash: Yet Another Shell
#48I kind of wish there was a shell that had the option for histories localized to a directory. So I can go into a directory and then look at what I was doing when I was last in that directory. Some complicated compilation command line to compile and link a source file and a bunch of libraries that was run when I was last in that directory, for example. There'd still be the 'history' command for everything and then mayb…
I kind of wish there was a project-oriented complete desktop environment, where you could enter a project and everything was context-sensitive to it. editor, files, directories, shell, browser, whatever. sort of a way to work on projects, then put them on old. and maybe meta-projects to choose, track, arrange, manage some or all projects. maybe by area of responsibility.
So the field is ripe for whoever wants to try... though now same accounts to XYZ are being used for hundred things..
Re: Yash: Yet Another Shell
#49Earlier quoted context omitted.
I bet yash is great, sorry for distracting from the topic, but since you asked... It's not one killer feature, but it's a lot of small things that add up to this feeling that POSIX shells are stuck in a rut and that a better world is possible. I'm going to use docker output as an example. I know that you can ask docker for json and then use jq, but let's pretend that what you're working with isn't so friendly as dock…
Box-drawing characters can make output look nice, for sure.
Re: Yash: Yet Another Shell
#50Earlier quoted context omitted.
nushell does this by default, sort of. it will show you autocompletes that are relevant to the current directory and will fallback to history more generally. i’m a huge nushell fan. if you can stand a non POSIX shell, it’s great for working with any kind of structured data and has a sane mostly FP scripting language
What do you love about it? How would you demonstrate to a friend its value?