开发者生态
evening
e 是一个可定制的、具有自我意识的、类似 Emacs 的编辑器,用 Chez Scheme 编写
2026-08-29
1 阅读
约7分钟阅读
p4bl0
字号:
用 Chez Scheme 编写的小型控制台文本编辑器。它在本质上与 Emacs 很像——缓冲区、窗口、杀戮环、增量搜索和Scheme 顶层——但它不是 Emacs 的克隆。它借用了小规模的想法并就此止步。编辑器是一个Scheme系统。一切都是一个 R6RS 库:一个最小的核心,具有已发布的、不可变的 API,以及基于其构建的扩展模块(语法模式、括号匹配、编辑助手、M-x 本身)。核心通过语言而不是规则来强制执行其边界:内部是不可见的,导出不能被重新分配。 M-x 根据编辑器的实时顶层评估Scheme,包括符号完成、键入时的参数提示、历史记录和转录缓冲区。模块热重载。在编辑器中保存模块的源代码会将其重新加载到正在运行的会话中;在其他地方编辑的源代码可以通过 reload-module 获取! 。注册被替换,依赖模块重新编译,缓冲区保持不变。 e是从自身内部发展而来的。除了 Chez Scheme 和类 Unix 终端之外没有任何依赖项。没有构建或安装步骤:结账就地运行。第一次启动编译库;稍后启动大约需要 100 毫秒。 Undo 报告它撤消的内容:Undo insert "hello" 、 Undo (replace-all! "xx" "yy") 。键入的字符合并为多个字符,粘贴是一个步骤,M-x 命令是一个标记步骤。作为您的日常编辑器,克隆为 ~/.e : git clone https://github.com/paveluv/e ~ /.e ~ /.e/e file.txt # add ~/.e to PATH for plain `e` 或在项目内出售,因此克隆该项目的任何人都可以使用它: git clone https://github.com/paveluv/e ~ /git/your_project/.e rm -rf ~ /git/your_project/.e/.git # 使其成为存储库的普通文件 ~ /git/your_project/.e/e file.txt 每个安装都是独立的:加载程序严格使用脚本本身旁边的 lib/ ,编译的对象保留在 eo/ 本地,并且当源(或它们导入的任何内容)发生更改时,源会自动重新编译。项目特定的模块放入供应商结帐的库中/保留在该项目的本地。终端大小通过 ioctl 检测并在调整大小时进行跟踪;如果不可用,请设置 LINES 和 COLUMNS 。在 FreeBSD 上,其 Chez 端口重命名了 schema-script 解释器,请将 shebang 更改为 #!/usr/bin/env -S chez-scheme --script 或运行 chez-scheme --script e(详细信息请参见加载器的标头注释)。按键操作 C-x C-s 保存(提示在未命名的缓冲区中输入名称) C-x C-w 另存为:提示输入路径,缓冲区访问它 C-x C-f 访问其自己的缓冲区中的文件(如果需要则创建) C-x C-c 退出(仅询问某些缓冲区与其文件不同) 按键操作 C-x b 切换缓冲区(默认:最近的其他;新名称创建缓冲区) C-x C-b 打开 *缓冲区*:移动使用向上/向下、Enter 进行选择;单击立即选择 M-Up 按字母顺序切换到前一个缓冲区 M-Down 按字母顺序切换到下一个缓冲区 C-x k 终止缓冲区(默认:当前;询问是否已修改) C-x 2 将当前窗口一分为二(堆叠) C-x 3 将当前窗口一分为二(并排) C-x 1 删除所有其他窗口 C-x 0 删除当前窗口 C-x o 移动到下一个窗口 C-x t 切换此窗口中长行的软换行window 每个窗口都有自己的状态行、点和滚动位置;相同的缓冲区可以同时显示在多个窗口中。缓冲区具有每个缓冲区的历史记录和标记;窗口具有独立的点、滚动、换行和状态。默认显示右侧滚动条; C-x l 切换缓冲区拥有的行号间距。请参阅用于切换的缓冲区、*缓冲区*、文件完整性、目标窗口、鼠标行为、滚动条、换行、分割和公共 API。按键操作 C-b / C-f / 箭头 向左 / 右一个字符 C-p / C-n / 箭头 向上 / 下一行 C-a / C-e , Home/End 行首 / 行尾 C-v / M-v , PgDn/PgUp 向下翻页 / 向上 M-< / M-> 缓冲区开始 / 结束 按键操作 C-d , 删除 删除点后的字符 Backspace 删除点前的字符 C-o 在下面打开一行,将点保留在原处C-k 终止到行尾(重复累加) C-@ ( C-Space ) 设置标记 C-w 终止标记和点之间的区域 C-y 撤消最后一次终止 C-_ 撤消 C-M-_ 重做 TAB 按模式规则缩进行 M-% 从点开始查询替换:y / SPC 替换,n / DEL 跳过,q / RET / C-g 停止 M-。描述点处的符号(方案缓冲区;见下文) C-x C-e 将当前缓冲区评估为方案 C-l 重新绘制屏幕并重新读取其大小 C-g 取消(提示、搜索、标记、运行评估) C-h k 描述一个键及其绑定来自何处 所有键盘命令都可以在 config.e 中重新绑定。用户绑定覆盖内置和模块默认值,并且 C-h k 描述键、其来源及其上下文含义: (bind-key! " C-c s " save!!) (unbind-key! " C-v " ) 请参阅键绑定配置以了解键语法、上下文映射、可用操作、优先级、取消绑定和模块默认值。 C-s 开始增量搜索:键入以扩展needl
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱