还觉得zsh是终极shell,或者fish是宇宙第一shell? 有胆试试clisp shell吗?
PS 注意安全,做好备份,然后你就可以用lisp替代不够强大的shell脚本语言了。
还觉得zsh是终极shell,或者fish是宇宙第一shell? 有胆试试clisp shell吗?
PS 注意安全,做好备份,然后你就可以用lisp替代不够强大的shell脚本语言了。
或许可以搭配Common Lisp版本的Emacs?
真•Emacs操作系统
Step 4: start X
是必须的吗?
好像 shell 脚本也不能运行了。fish 虽然不支持 bash 的语法,但是可以运行脚本。
启动x只是个范例。macOS估计用不着。
当然脚本是可以运行的。
You should be able to run a shell script using the CLISP built-in function ext:shell.
本质上就是开个别的shell来运行脚本,然后可以试着用一个读入宏来简化输入。
然后补全规则,高亮都要自己搞,不过不算难, 体会一下Lisp Machine时代一人一个发行版。
一些有用的东西:
(defun sh (cmd)
#+clisp
(let ((str (ext:run-shell-command cmd :output:stream)))
(loop for line = (read-line str nil)
until (null line)
do (print line)))
#+ecl
(si:system cmd)
#+sbcl
(sb-ext:run-program "/bin/sh" (list "-c" cmd) :input nil :output *standard-output*)
#+clozure
(ccl:run-program "/bin/sh" (list "-c" cmd) :input nil :output *standard-output*)))
震惊 真的有这样的东西吗?
还不错,就是没有补全,有点蛋疼。
虽然clisp的性能在common lisp实现里面不怎么样,但是在终端用还是很方便的。
然后有人已经做出了个成品。
一个更不错的。能够将shell和lisp混用。已经有点eshell的味道了。
震惊, 是时候将lisp shell作为登陆shell提上日程了
SXEmacs 是一个 XEmacs 的 fork,也就是 GNU/Emacs 的 fork 的 fork。它的主页上居然写着:
SXEmacs is my login shell.
震惊!!!
PS:可惜我在 macOS 上没 build 成功,而且这个开发也不算活跃。
没编译成功的原因大概是 macOS 的图片支持库和其它 *nix 系统不一样。然后 sxemacs 频道已经没人了。这个项目估计已经 dead 了。
cl-launch似乎也可以满足类似的需求。