探索 Edit:一款致敬经典 MS-DOS 的现代文本编辑器

引言:当经典遇见现代

Edit 是一款独特而实用的文本编辑器,它巧妙融合了传统与现代元素。这款工具的设计灵感来源于经典的 MS-DOS Editor,却拥有现代化的界面和类似 VS Code 的操作体验。它的核心目标是让即使不熟悉终端操作的用户也能轻松上手,成为日常文本处理的可靠伙伴。

Edit 编辑器主界面截图,显示关于对话框
Edit 编辑器界面简洁直观,功能布局合理


Edit 是什么?它能解决什么问题?

Edit 定位为”满足简单需求的简易编辑器”。与传统复杂的开发工具不同,它专注于提供:

  • 零学习曲线:采用最直观的操作逻辑
  • 轻量快速:启动迅速,资源占用低
  • 跨平台支持:兼容主流操作系统
  • 无障碍设计:充分考虑各类用户需求

经典与现代的视觉融合

程序图标 Edit 应用图标 本身就在诉说它的设计哲学:既保留了 MS-DOS Editor 的方正轮廓,又采用现代扁平化设计语言,象征着传统与现代的完美结合。


如何获取和安装 Edit

多平台安装选项

各发行版打包状态
通过 Repology 查看各 Linux 发行版的打包状态

Windows 用户最简安装

winget install Microsoft.Edit

使用 Windows 内置的包管理器一键安装

通用安装方法

所有平台的二进制文件均可从 官方发布页面 直接下载,支持:

  • Windows (.exe)
  • macOS (.dmg)
  • Linux (多种打包格式)

技术爱好者:如何从源码构建 Edit

准备构建环境

  1. 安装 Rust 语言工具链
    访问 Rust 官网 获取安装器

  2. 配置工具链

    rustup install nightly
    

    或设置环境变量:RUSTC_BOOTSTRAP=1

完整构建步骤

# 克隆代码仓库
git clone https://github.com/microsoft/edit.git

# 进入项目目录
cd edit

# 执行发布版本构建
cargo build --config .cargo/release.toml --release

构建完成后,可执行文件位于 target/release 目录


关键技术解析:ICU 库的灵活适配

Edit 的搜索替换功能采用了强大的 ICU 库,但不同系统可能存在兼容性问题。以下是解决方案:

动态库命名适配

操作系统 默认库名称 自定义设置示例
Windows icuuc.dll 设置环境变量 EDIT_CFG_ICUUC_SONAME=icuuc76.dll
macOS libicuuc.dylib 设置 EDIT_CFG_ICUUC_SONAME=libicuuc.76.dylib
Linux/Unix libicuuc.so 设置 EDIT_CFG_ICUUC_SONAME=libicuuc.so.76

符号导出规则配置

graph LR
A[符号命名问题] --> B{解决方案}
B --> C[添加下划线前缀]
B --> D[添加版本后缀]
C --> E[设置 EDIT_CFG_ICU_CPP_EXPORTS=true]
D --> F[设置 EDIT_CFG_ICU_RENAMING_VERSION=76]

高级自动检测(谨慎使用)

# 启用运行时自动检测(不推荐)
export EDIT_CFG_ICU_RENAMING_AUTO_DETECT=true

注意:此功能依赖 ICU 内部实现细节,可能随版本变化失效

验证配置正确性

cargo test -- --ignored

运行特殊测试用例验证 ICU 配置


常见问题解答 (FAQ)

Q1:为什么命名为 “Edit”?会和其他命令冲突吗?

Edit 的主执行文件名是 edit,备用名是 msedit。我们建议:

  • 软件包命名为 “msedit”
  • 可执行文件安装为 msedit
  • edit 创建别名(如 alias edit=msedit
    避免使用 “ms-edit” 等带连字符的名称

Q2:必须安装 ICU 库吗?

ICU 是可选依赖

  • 不安装:基础编辑功能不受影响
  • 安装后:启用增强的搜索/替换功能
  • 支持动态加载,无需重新编译

Q3:为什么需要 nightly Rust 工具链?

因为使用了部分尚未稳定的 Rust 特性。替代方案:

export RUSTC_BOOTSTRAP=1
cargo build --release

Q4:如何验证 ICU 配置是否正确?

运行包含 --ignored 参数的测试:

cargo test -- --ignored

测试通过表明 ICU 库配置正确


给软件打包者的专业建议

命名规范

项目 推荐方案 避免方案
软件包名 msedit ms-edit
二进制文件名 msedit microsoft-edit
用户命令 edit (作为别名) 直接覆盖系统命令

ICU 配置最佳实践

  1. Linux 打包建议

    # RPM spec 示例
    %build
    export EDIT_CFG_ICUUC_SONAME=libicuuc.so.%{icu_version}
    cargo build --release
    
  2. 版本后缀处理

    • 检测系统 ICU 版本
    • 自动设置 EDIT_CFG_ICU_RENAMING_VERSION
    • 禁用自动检测(避免不可控行为)
  3. 符号导出兼容

    • macOS 默认启用 EDIT_CFG_ICU_CPP_EXPORTS
    • 其他系统保持默认 C 风格导出

结语:简约而不简单的编辑利器

Edit 编辑器通过精心设计,在经典与现代之间找到了完美平衡点:

  • 对传统用户:唤起 MS-DOS Editor 的温暖记忆
  • 对现代用户:提供 VS Code 式的流畅体验
  • 对开发者:保留强大的扩展能力
  • 对普通用户:实现零门槛上手

无论是快速编辑配置文件,还是进行简单的代码编写,Edit 都能成为您得力的数字伙伴。其开源特性也欢迎更多开发者参与,共同打造这款致敬经典的现代编辑器。

项目地址:https://github.com/microsoft/edit
最新版本:https://github.com/microsoft/edit/releases/latest