编辑器 活跃维护

ned

nealmick/ned

带复古风格着色器的 ImGui 文本编辑器

386
Stars 标星
23
Forks 分支
6
Watchers 关注
1
Open Issues
C++
主要语言
MIT
开源协议
186.5 MB
仓库大小
10 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:nealmick/ned
git clone https://github.com/nealmick/ned.git
git clone git@github.com:nealmick/ned.git
README.md main

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

一个带有GL着色器效果的复古风格文本编辑器。NED包括Tree-sitter语法高亮、多光标编辑、LSP集成、Git行标记和内置终端。

下载

https://github.com/user-attachments/assets/74af4120-7cf7-4e8c-9b60-7e2aa3228be0

着色器效果:静态噪点、烧入、屏幕曲率、泛光、晕影

琥珀 太阳化
Ned Custom

显著特性

  • OpenGL CRT风格着色器(噪点、老化、曲率、光晕、扫描线、抖动等)
  • 支持15种语言的Tree-sitter语法高亮(C/C++、JS/TS/TSX、Python、Rust、Go、Java、C#、Ruby、Kotlin、HTML/CSS、JSON、TOML、HCL、Bash等)
  • 多光标编辑(Option/Alt ↑/↓ 添加光标;在查找中使用 Cmd/Ctrl Enter 选择所有匹配项)
  • LSP 集成(跳转到定义、查找引用、符号信息)并支持可配置的语言服务器
  • 通过 libgit2 在行号边栏显示 Git 变更标记
  • 全屏终端(ImGui-Terminal),可从编辑器切换
  • 文件树浏览器、模糊文件查找、缓冲区内查找和跳转到行
  • 彩虹光标和行号,使光标不易丢失
  • 主题配置文件(Ned、Amber、Solarized、自定义),设置实时生效
  • 可嵌入的 ned_embed 库,用于 Dear ImGui 主机(多标签停靠)

从源代码构建

前提条件

  • CMake 3.10 或更高版本
  • C 20 兼容的编译器
  • OpenGL、GLFW3、GLEW
  • FreeType 和 Fontconfig
  • Curl(在 Linux 上用于 libgit2 HTTPS 的 OpenSSL)

克隆包含其子模块的仓库:

# Make sure you clone with the recursive flag
git clone --recursive https://github.com/nealmick/ned
cd ned
git submodule init
git submodule update

# macOS (Apple Silicon / ARM64)
brew install clang-format cmake llvm glfw glew pkg-config curl freetype fontconfig

# Ubuntu/Debian
sudo apt install cmake libglfw3-dev libglew-dev libgtk-3-dev pkg-config clang \
  libcurl4-openssl-dev libfreetype6-dev libfontconfig1-dev libssl-dev zlib1g-dev \
  clang-format mesa-utils dpkg-dev

# For Windows, the dependencies are installed using the build script (vcpkg)

构建项目

macOS 和 Linux(Ubuntu/Debian)

./scripts/build.sh
# Build only (no launch):  ./scripts/build.sh --no-run
# Clean rebuild:           ./scripts/build.sh --clean

窗口

./scripts/build-win.bat
# On Windows, the build script will attempt to install Visual Studio with Build Tools. 10–20 minutes.
# After VS has been installed, you must close and re-open PowerShell and run ./scripts/build-win.bat again.
# Subsequent rebuilds are much faster after the initial dependencies have been installed.

测试

./scripts/test.sh
# Catch2 suites cover the document model, commands, multi-cursor, undo, save, git, and UTF-8 helpers.

创建应用程序包

./scripts/pack-mac.sh
./scripts/pack-deb.sh

# Bypass quarantine/translocation, or sign with your own Apple developer account
xattr -dr com.apple.quarantine Ned.app

在您的 Dear ImGui 项目中嵌入 Ned

https://github.com/user-attachments/assets/56c17e13-729b-4667-a6d4-95119f059252

github.com/nealmick/ImGui_Ned_Embed

可以通过 ned_embed 库将 Ned 嵌入到其他 ImGui 应用中。嵌入主机在独立应用使用的相同编辑器核心上添加了多标签停靠功能——文件浏览器、终端、主题、表情符号字体和 LSP 可供主机使用。演示仓库展示了如何将其集成到项目中。

关于项目

Ned 是一个面向轻量级、可嵌入核心并具有强烈复古美学的 Dear ImGui 文本编辑器。

编辑器核心 层次为 Commands → Operations → 文档状态(写时复制 rope 缓冲区)。外部代码通过 EditorApi 与编辑器交互。语法高亮、保存、撤销和 git 是以事件驱动的专用服务,而不是单一的编辑器类。

语法高亮使用 Tree-sitter,并配有上述语言的查询文件。多光标和选择存储在视图状态中;文档变更保持为单文本操作流。LSP 由可配置的 lsp.json 驱动(clangd、gopls、pyright/typescript-language-server、rust-analyzer 等)。终端是由 ImGui-Terminal 提供支持的全屏覆盖层。着色器效果、主题配置文件和快捷键存储在用户配置中(~/ned/config),并由内置资源初始化。

独立版 Ned 和 NedEmbed 共享一个 Workbench(停靠的多标签浏览器编辑器)。独立版在全屏模式下绘制,可选择 CRT 着色器;嵌入版在可移动的 ImGui 窗口中绘制。测试平台:macOS ARM64、Windows x64 和 Debian。Windows 构建通过构建脚本使用 vcpkg。

如果您有问题或遇到问题,请随时联系。

本站来源与版权声明
  • 本文标题:ned - 带复古风格着色器的 ImGui 文本编辑器
  • 本文链接:https://www.cn121.com/editor/nealmick-ned.html
  • 原项目:nealmick/ned 版权归原作者 nealmick 及贡献者所有
  • 收录信息:本站于 2026-10-27 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 nealmick/ned。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。