microsoft/edit
GitHub: microsoft/edit
微软开发的轻量级终端文本编辑器,融合经典 MS-DOS Editor 简洁风格与 VS Code 现代交互,为终端用户提供低门槛的文件编辑体验。
Stars: 14059 | Forks: 674
#  Edit
一款满足简单需求的简易编辑器。
这款编辑器向经典的 [MS-DOS Editor](https://en.wikipedia.org/wiki/MS-DOS_Editor) 致敬,但采用了类似于 VS Code 的现代界面和输入控件。其目标是提供一款易于使用的编辑器,即使是对终端不太熟悉的用户也能轻松上手。

## 安装
[](https://repology.org/project/microsoft-edit/versions)
您也可以从[我们的 Releases 页面](https://github.com/microsoft/edit/releases/latest)下载二进制文件。
### Windows
您可以使用 WinGet 安装最新版本:
```
winget install Microsoft.Edit
```
### Linux(从源代码构建)
如果您的发行版没有提供二进制文件,或者您想自行构建,可以使用我们的安装脚本,前提是您已经安装了以下内容:
* Rust(通过 `rustup` 或类似方式)
* C 编译器(例如 `gcc`)
* ICU(例如 libicu78、libicu、icu)
* curl/wget 和 tar
以下命令将会把 `msedit` 安装到 `~/.local/bin` 中:
```
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/main/assets/install.sh | sh
```
其他标志包括:`--dev` 用于直接从主分支构建,`--system` 用于安装到 `/usr/local/bin`。例如:
```
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/main/assets/install.sh | sh -s -- --dev --system
```
## 构建说明
* [安装 Rust](https://www.rust-lang.org/tools/install)
* 克隆仓库
* 如果您使用的是 nightly 版本的 Rust:
cargo build --release --config .cargo/release.toml
* 如果您使用的是 stable 版本的 Rust:
* 理想情况下:设置环境变量 `RUSTC_BOOTSTRAP=1` 并使用上述的 **nightly** 构建说明。
推荐此方式,因为它能大幅减小二进制文件体积并略微提升性能。
* 否则,只需运行:
cargo build --release
### 构建配置
您可以在构建时设置以下环境变量来配置构建过程:
环境变量 | 描述
--- | ---
`EDIT_CFG_ICU*` | 详情请参阅下文的 [ICU 库名称 (SONAME)](#icu-library-name-soname)。建议 Linux 软件包维护者查看并配置这些选项。
`EDIT_CFG_LANGUAGES` | 以逗号分隔的要包含在构建中的语言列表。有关可用语言,请参阅 [i18n/edit.toml](i18n/edit.toml)。
## 致软件包维护者的说明
### 软件包命名
规范的名称是 "edit",备用名称是 "msedit"。
我们意识到 "edit" 可能与现有命令发生冲突,因此建议将软件包和可执行文件命名为 "msedit"。
应避免使用类似 "ms-edit" 这样的名称。
如果可能的话,建议设置一个 "edit" 别名。
### ICU 库名称 (SONAME)
本项目可选地依赖于 ICU 库来实现其搜索和替换功能。
默认情况下,项目将查找以下库名称:
变量 | Windows | macOS | Linux / 其他
----------|---------|-------|---------------
`EDIT_CFG_ICUUC_SONAME` | `icuuc.dll` | `libicucore.dylib` | `libicuuc.so`
`EDIT_CFG_ICUI18N_SONAME` | `icuin.dll` | `libicucore.dylib` | `libicui18n.so`
如果您安装的 ICU 使用了不同的 SONAME,请在构建时设置以下环境变量:
* `EDIT_CFG_ICUUC_SONAME`:
例如,`libicuuc.so.76`。
* `EDIT_CFG_ICUI18N_SONAME`:
例如,`libicui18n.so.76`。
此外,本项目假定 ICU 导出的符号不带 `_` 前缀且不带版本后缀,例如 `u_errorName`。
如果您安装的 ICU 使用了带版本号的导出符号,请设置:
* `EDIT_CFG_ICU_CPP_EXPORTS`:
如果设置为 `true`,将查找 C++ 符号,例如 `_u_errorName`。
在 macOS 上默认启用。
* `EDIT_CFG_ICU_RENAMING_VERSION`:
如果设置为版本号(例如 `76`),将查找带有版本号的符号,例如 `u_errorName_76`。
最后,您可以设置以下环境变量:
* `EDIT_CFG_ICU_RENAMING_AUTO_DETECT`:
如果设置为 `true`,可执行文件将尝试在运行时检测 `EDIT_CFG_ICU_RENAMING_VERSION` 的值。
该检测方式不受 ICU 官方支持,因此不建议依赖此功能。
如果在未设置其他选项的情况下,在 UNIX(不包括 macOS)系统上默认启用此功能。
要测试您的构建设置,请使用 `--ignored` 标志运行 `cargo test`。例如:
```
cargo test -- --ignored
```
标签:Awesome, DNS解析, Linux命令行, MS-DOS编辑器, Rust语言, VS Code风格, WinGet, 可视化界面, 威胁情报, 开发者工具, 开源, 开源项目, 文本编辑器, 现代界面, 系统管理, 终端编辑器, 轻量级应用, 通知系统