主要观点:作者在个人仓库中开发了一种在 Emacs 中启动和管理进程的新方式——Portal,它是 shell 的替代品,类似笔记本,部分满足 Prodigy-mode 的需求,名字源于 2007 年的视频游戏 Portal;有主模式,M-!
绑定到 Portal 运行 shell 脚本的方式,会在缓冲区插入 nano-ID 并创建对应目录,将 stdout 和 stderr 重定向到文件;目的是避免 Emacs 在运行长时间或大量输出的进程时卡顿,预览每几秒更新一次且行长度限制为 80 列;另一个动机是基于用户体验,方便处理工作中输出大量无用信息的命令;示例展示了运行命令后的输出及不同部分的颜色区分,M-x portal-edit
可编辑命令行,M-x portal-rerun
可重新运行,新运行的 Portal 有新 nano-ID 可回溯;Emacs 处理 stdout 和 stderr,可理论上管道传输或编辑、重启正在运行的 Portal,且与 envrc 模式完美配合,C-c C-c
可中断进程;作者使用几周后对其工作效果和适合工作流感到惊喜,有一个包含 30 个 Portal 的 foo.portals 缓冲区,可保存文件以便重启 Emacs 不丢失数据,不打算将其作为“包”维护,但分享代码供他人使用。
关键信息:
- 开发的新方式名为 Portal,在个人仓库中。
- 主模式下
M-!
与 Portal 运行脚本相关,插入 nano-ID 并创建目录,重定向输出。 - 设计目的是避免 Emacs 卡顿,预览每几秒更新且行长度限制。
- 基于用户体验,处理工作中输出无用信息的命令。
- 有
M-x portal-edit
和M-x portal-rerun
等命令,新 Portal 有新 nano-ID 可回溯。 - 与 envrc 模式配合,
C-c C-c
可中断进程。 - 作者使用几周效果良好,有包含多个 Portal 的缓冲区可保存。
重要细节:
- 输出中的 (0) 表示成功退出,不同部分颜色不同,鼠标放在上面按 RET 可打开文件。
- 新运行的 Portal 会得到新 nano-ID 以便回溯。
- Emacs 处理输出,可理论上进行管道等操作但未深入探索。
- 作者不打算将其作为“包”维护但分享代码。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。