e 是一个可定制的自我意识 Emacs 风格的编辑器,使用 Chez Scheme 编写
一个用 Chez Scheme 编写的小型控制台文本编辑器。它在精神上类似于 Emacs——有缓冲区、窗口、删除环、增量搜索和 Scheme 顶层——但并不是 Emacs 克隆。它借鉴了保持小巧的思想,并在此停止。该编辑器是一个 Scheme 系统。所有内容都是 R6RS 库:一个带有已发布、不变 API 的最小核心,以及建立在上面的扩展模块(语法模式、括号匹配、编辑助手、M-x 本身)。核心通过语言而不是纪律来强制其边界:内部是不可见的,导出无法重新分配。M-x 在编辑器的实时顶层上评估 Scheme,具有符号补全、输入时的参数提示、历史记录和转录缓冲区。模块热重载。将模块源保存到编辑器内会将其重新加载到运行会话中;在其他地方编辑的源通过 reload-module! 被拾取。注册项被替换,依赖模块重新编译,缓冲区保持不变。e 是在内部开发的。除了 Chez Scheme 和类 Unix 终端之外没有依赖项。没有构建或安装步骤:检查即可原地运行。第一次启动时编译库;后续启动约需 100 毫秒。撤销报告所撤回的内容:撤销插入“hello”,撤销(替换所有!“xx”,“yy”)。输入的字符会合并成一个运行,粘贴是一个单个步骤,M-x 命令是一个标记步骤。快速启动 作为您日常的编辑器,克隆为 ~/.e:git clone https://github.com/paveluv/e ~/.e ~/.e/e file.txt # 将 ~/.e 添加到 PATH 以便于使用普通的 `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/ 中,当它们(或任何它们导入的东西)更改时,源会自动重新编译。特定于项目的模块放入 vendored checkout 的 lib/ 中,保持局部于该项目。通过 ioctl 检测终端大小并在调整大小时跟踪;如果不可用,设置 LINES 和 COLUMNS。在 FreeBSD 上,其 Chez 端口重命名了 scheme-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 打开 *buffers* : 用 Up/Down 移动,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 切换此窗口中长行的软换行 每个窗口都有自己的状态行、光标和滚动位置;同一个缓冲区可以同时在多个窗口中显示。缓冲区有每个缓冲区的历史和标记;窗口具有独立的光标、滚动、换行和状态。默认情况下显示右侧滚动条;C-x l 切换缓冲区拥有的行号边栏。有关切换、*buffers*、文件完整性、目标窗口、鼠标行为、滚动条、换行、拆分和公共 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 , Delete 删除光标后面的字符 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-. 描述光标处的符号(Scheme 缓冲区;见下文) C-x C-e 作为 Scheme 评估当前缓冲区 C-l 重新绘制屏幕并重新读取其大小 C-g 取消(提示、搜索、标记、正在运行的评估) C-h k 描述一个键及其绑定来源 键自定义 所有键盘命令都可以在 config.e 中重新绑定。用户绑定会覆盖内置和模块默认值,C-h k 描述一个键、其来源和上下文含义:(bind-key! " C-c s " save!!) (unbind-key! " C-v " ) 参见键绑定配置以获取键语法、上下文映射、可用操作、优先级和其它信息。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡