主要观点:Schemesh 是一个可在 Lisp 中脚本化的交互式 Unix 外壳,旨在替代 bash 等传统 Unix 外壳,支持交互式编辑、自动补全等 Unix 外壳语法,还能无缝集成 Chez Scheme 的完整 Lisp REPL,可用于多种场景,如作为传统 Unix 外壳替换、可脚本化的 Scheme 外壳、Scheme REPL 及 Scheme 库等。
关键信息:
- 支持多种使用方式,包括作为传统 Unix 外壳、可脚本化的 Scheme 外壳、Scheme REPL 及 Scheme 库。
- 切换语法简单,可任意嵌套,如
(
切换为 Lisp 语法,{
切换为 shell 语法等。 - 具有 job 控制功能,从 shell 语法和 Scheme 语法都可进行启动、停止、管理 job 等操作。
- 0.8.0 版本新增可在 jobs 中运行任意 Scheme 代码并应用 job 控制功能。
- 0.8.1 版本标准 Scheme 文本端口自动遵循 job 重定向。
- 0.8.2 版本 shell 语法扩展为字符串可在 Scheme 中使用相关宏。
- 包含完整 Chez Scheme REPL,可定义变量等,还能编译加载 Scheme 文件和库。
- 有多种混合 shell 和 Lisp 语法的示例,且设计上
cd
和设置环境变量有局部范围。 - 具有多种功能,如 REPL 多线编辑、快捷键、历史搜索、自动补全等。
重要细节: - 构建 instructions 针对不同系统给出了具体安装步骤,包括 Debian Linux、Fedora Linux、FreeBSD、Mac OS X 等,同时提到
make -j
可能出现的错误及解决方法。 - 常见问题部分对比了 Schemesh 与其他 Lisp 外壳的差异,如 Scsh 缺乏行编辑等功能,Eshell 运行在 Emacs 内难以作为登录外壳等。
- 待办事项包括完善自动补全功能、实现相关函数等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。