Counting number of files
/Users/kchan> (cd quicklisp/local-projects/unix-in-lisp)
/Users/kchan/quicklisp/local-projects/unix-in-lisp> (pipe (wc -l) (ls))
9
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.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.
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.
Related:
- Lish allows to mix&match shell and Lisp code, with regular syntax. https://github.com/nibbula/lish/
$ echo ,*package*
#<PACKAGE "LISH-USER">
$ (defun hello (name) (format t "hello ~a!!~&" name))
$ (hello "me")
hello me!!
NIL
$ (hello "me") | wc -w
=> 2
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...
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!
Also, `defile` is a great name for a macro :-)