It is usable. Interactive commands like sudo and htop work, some like less and fzf don't. So it ships a pager, `view`. It has a directory mode, a Lisp REPL with a debugger, completion…. It is not done, the author keeps hacking on it. Hackers invited to have a look.
Thanks for the pointer to lish! I didn't know it had all that, I know it exists but was intimated by its non-standard packaging...
I decided to not go too far on the structured/object shell route for Unix in Lisp, instead trying to get existing Unix utilities to work as seamlessly as possible first. But maybe in the future I could integrate some work from lish. That's lots of impressive work under yew/los and yew/tools!
Neat. Funny enough I've recently considered writing sort of the exact opposite of this - a FUSE FS that maps every package and symbol of a running lisp image into the filesystem, so that the value of variables could be read/written from outside, fbound symbols would be marked executable and "callable" from unix by running them (via some weird shebang hack, I guess), etc.
Personally, I would want the top level parens to be implicit so I could write
/Users/kchan> cd quicklisp/local-projects/unix-in-lisp
/Users/kchan/quicklisp/local-projects/unix-in-lisp>
This removes what could be trivial, but for a basic `cd`, I don't want to have to remember parens every time. Optionally having those parens would be nice for when they're needed, but for basic use-cases I'd rather not.
Author here! I've considered this before, but there are problems such as what does a single atom mean:
Does
test.sh
run test.sh or returns the content of test.sh?
I am a heavy Lisper myself so I end up choosing consistency over one less keystroke (I have paredit, so the difference between (ls) vs ls is just one keystroke), but I could be biased.
That's a fair point. Consider that I have very little experience with any kind of Lisp beyond Scheme, and even that is very limited. I was coming at this recommendation from the perspective of a heavy command line user.
Wow, that's crazy O_o
Related:
- Lish allows to mix&match shell and Lisp code, with regular syntax. https://github.com/nibbula/lish/
It is usable. Interactive commands like sudo and htop work, some like less and fzf don't. So it ships a pager, `view`. It has a directory mode, a Lisp REPL with a debugger, completion…. It is not done, the author keeps hacking on it. Hackers invited to have a look.- SHCL is a posix-like shell written in CL. https://github.com/bradleyjensen/shcl (it doesn't have completion. Not active.)
https://github.com/CodyReichert/awesome-cl#shells-shells-int...
Thanks for the pointer to lish! I didn't know it had all that, I know it exists but was intimated by its non-standard packaging...
I decided to not go too far on the structured/object shell route for Unix in Lisp, instead trying to get existing Unix utilities to work as seamlessly as possible first. But maybe in the future I could integrate some work from lish. That's lots of impressive work under yew/los and yew/tools!
One of those "I wonder what it'd be like if someone made that", and then someone _does_ make that, kudos!
Also, `defile` is a great name for a macro :-)
Neat. Funny enough I've recently considered writing sort of the exact opposite of this - a FUSE FS that maps every package and symbol of a running lisp image into the filesystem, so that the value of variables could be read/written from outside, fbound symbols would be marked executable and "callable" from unix by running them (via some weird shebang hack, I guess), etc.
Related: https://scsh.net/about/what.html
One of the examples in the readme is this
Counting number of files
Personally, I would want the top level parens to be implicit so I could write This removes what could be trivial, but for a basic `cd`, I don't want to have to remember parens every time. Optionally having those parens would be nice for when they're needed, but for basic use-cases I'd rather not.Author here! I've considered this before, but there are problems such as what does a single atom mean: Does test.sh run test.sh or returns the content of test.sh?
I am a heavy Lisper myself so I end up choosing consistency over one less keystroke (I have paredit, so the difference between (ls) vs ls is just one keystroke), but I could be biased.
That's a fair point. Consider that I have very little experience with any kind of Lisp beyond Scheme, and even that is very limited. I was coming at this recommendation from the perspective of a heavy command line user.
Do you use this as a daily driver?
I got addicted to evil-mode at some point and haven’t squared the circle of modal s-expression editing that this inevitably surfaces.
At least readline respecting programs reward my early emacs years.
Yes I use it daily.
I never squared the circle of modal editing and use mostly vanilla Emacs bindings (and paredit) :)
Would love to hear feedback from evil-mode user. Just in case I port it to vim in the future.
I use these keys every day for just about every sort of balanced delimiter manipulation I do in any language: https://github.com/fiddlerwoaroof/dotfiles/blob/eff889f0b749...
A little below I bind this key map to the “,” prefix and I’ve found my layout of paredit commands pretty ergonomic to use long-term.
would it be hard to modify the readline mechanism to show the "implicit" parens and push them apart as you type?
[dead]