# QEditor-Release **Repository Path**: zqhcoding/QEditor-Release ## Basic Information - **Project Name**: QEditor-Release - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-20 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QEditor [English](README.md) | 简体中文 QEditor("**Editor** powered by **Q**t"缩写) 是一个基于 Qt 的桌面文本编辑器,定位为“轻量但功能完整”的开发工具。 它不仅支持常规文本编辑,还内置了: - 代码搜索与替换、结果面板 - 多标签会话自动保存/恢复 - 文本对比、目录对比 - 十六进制编辑 - SSH 终端 - 桌面标注与截图 - IR 文件结构分析(Outline / Function Hierarchy / Node Hierarchy) - Markdown / HTML 实时预览 ## 界面 ![QEditor 示例 1](release/demo/example/screenshot_1.png) ![QEditor 示例 2](release/demo/example/screenshot_2.png) ![QEditor 示例 3](release/demo/example/screenshot_3.png) ![QEditor 示例 4](release/demo/example/screenshot_4.png) ![QEditor 示例 5](release/demo/example/screenshot_5.png) ![QEditor 示例 6](release/demo/example/screenshot_6.png) ## 主要功能 ### 1. 文本编辑与导航 - 多标签页编辑,避免同一文件重复打开 - 文件拖拽打开(窗口和编辑区都支持) - 行号、状态栏(Ln/Col/Pos/Lines/Length) - 缩放(Zoom In/Zoom Out) - 自动检测外部文件变化并提示重载 - 跳转历史(Step Back / Step Forward) - 可选显示空格、制表符、换行等特殊字符 ### 2. 搜索、替换与标记 - 查找/替换(普通、扩展、正则) - 大小写、全词、方向、循环搜索控制 - `Find All in Current`:当前文件全量命中列表 - 搜索结果停靠面板,支持双击跳转、结果复制、结果清理 - 关键字标记(Mark/Unmark)和一键清除 - 滚动条命中位置高亮(搜索、标记、差异等) ### 3. 多光标与列选择 - 默认启用列模式能力 - `Alt + Click`:添加多光标 - `Alt + Drag`:矩形区域选择 - `Alt + Shift + Arrow`:按列扩展/增加光标 ### 4. 语法高亮与文件类型 当前内置语法高亮主要覆盖: - C/C++(`.c`, `.cc`, `.cpp`, `.h`) - Python(`.py`) - MindIR/IR(`.ir`, `.dat`) - Markdown(`.md`) - HTML(`.html`, `.htm`) - 普通文本(`.txt`) ### 5. Markdown / HTML 双栏预览 - Markdown 或 HTML 文件自动进入分栏模式 - 支持左右/上下布局 - 支持“预览在前”或“编辑在前” - 分栏尺寸与布局可持久化 ### 6. 对比工具 #### 文本对比(Text Compare) - 双文件并排对比 - 差异块导航(Next/Prev Section) - 全量/仅差异/仅相同过滤 - Context 模式 - 区块级合并(左右拷贝差异块) - 差异地图(Diff Map) #### 目录对比(Folder Compare) - 左/中/右三列联动视图(左路径、状态、右路径) - 过滤模式:All / Diffs / Same - 差异细分过滤(含孤儿文件控制) - 批量复制(左到右 / 右到左) - 批量删除 #### 标签页快速 Diff - 标签右键可选择“View Diff between...” - 支持与前一个选中的文件快速比较 ### 7. 十六进制编辑(Hex Open) - 二进制文件十六进制视图与 ASCII 区联动 - 支持插入/替换模式 - 支持撤销/重做、复制/粘贴、删除 - 光标地址状态显示 ### 8. SSH 终端 - 内置 SSH 终端标签页 - 支持 `ssh` 命令串解析(含 `-p` 和 `ProxyCommand`) - 支持 ANSI 转义序列渲染(颜色、光标控制、清屏等) - 终端会话可参与会话恢复 ### 9. IR 结构分析(MindIR 相关) 针对 IR 文件,支持: - Outline 面板:函数列表与返回值 - Function Hierarchy:函数调用关系图 - Node Hierarchy:函数内部节点依赖图 - 图中双击节点可跳转到源码位置 - Ctrl 悬停/点击跳转提示(函数与变量) ### 10. 桌面绘图与截图工具 - 桌面绘图(画笔、直线、矩形、圆、箭头、文本、橡皮) - 区域截图、拖拽调整、边框缩放 - 绘图结果可保存或复制到剪贴板 - 可选全局快捷键: - `Ctrl + \``:桌面绘图 - `Alt + F1`:截图 ### 11. 主题与界面定制 - Light / Dark + 多套导入主题 - 主题菜单支持 hover 延时预览 - 编辑器字体、背景色、窗口透明度、对话框透明度 - 工具栏、资源管理器、Outline、Hierarchy 显示控制 - 中英文界面切换 ### 12. 会话与单实例 - 自动保存标签页与内容快照 - 启动恢复上次会话(含懒加载恢复) - 单实例运行:重复启动会复用已有窗口,并可向已运行实例传文件路径 ## 快捷键(常用) - `Ctrl + O`:打开文件 - `Ctrl + S`:保存 - `Ctrl + H`:替换 - `Ctrl + F`:查找 - `F3` / `Shift + F3`:下一个/上一个匹配 - `Ctrl + G`:跳转行 - `Ctrl + A`:全选 - `Alt + Left` / `Alt + Right`:跳转历史后退/前进 - `Shift + F8`:标记/取消标记 - `Ctrl + Shift + F8`:清除全部标记 - `Ctrl + P`:显示/隐藏资源管理器 - `Ctrl + J`:显示/隐藏 Outline - `Ctrl + L`:显示/隐藏 Hierarchy - `Ctrl + ,`:打开偏好设置 - `Ctrl + \``:桌面绘图 - `Alt + F1`:截图 ## 构建环境 ### 依赖 - Qt 6.10.2(建议路径:`~/Qt/Qt6.10.2`) - C++17 编译器 - `qmake` + `make` - Linux 下通常还需要: - `libssh`(用于 SSH 终端) - `X11` 开发库(QHotkey X11 后端) ### 第三方组件 - `third_party/QHotkey` - `third_party/libssh` - `diff_match_patch`(项目内源文件) ## 编译与运行(推荐 out-of-source) 为避免在仓库根目录产生临时构建文件,建议在 `opencode_tests` 下构建。 ```bash mkdir -p opencode_tests/readme_build cd opencode_tests/readme_build # 按你的本机 Qt 安装路径调整 qmake ~/Qt/Qt6.10.2/gcc_64/bin/qmake ../../QEditor.pro make -j"$(nproc)" ./QEditor ``` 如果你的 `qmake` 路径不同,可先定位: ```bash find ~/Qt/Qt6.10.2 -name qmake -type f ``` ## 命令行使用 可直接传入文件路径: ```bash ./QEditor /path/to/file ``` 若 QEditor 已在运行,新的启动请求会把文件发送给已有实例打开。 ## 配置与数据存储 - Linux 默认应用数据目录:`~/.config/QEditor/.Q/data/internal/.files/` - 主要内容包括: - `.config.ini`:配置 - `.auto_save/`:会话/自动保存数据 - `.recent_files/`:最近文件 - `.search_targets/`:搜索历史 ## 目录结构(源码) - `src/common` / `include/common`:配置、常量、单实例、工具类 - `src/view` / `include/view`:主窗口、编辑器、对话框、比较器、终端、桌面工具 - `src/file` / `include/file`:编码、最近文件、会话记录 - `src/parser` / `include/parser`:IR 解析接口与实现 - `src/hierarchy` / `include/hierarchy`:函数/节点层级图 - `src/theme` / `include/theme`:主题系统 - `src/diff` / `include/diff`:Diff 逻辑 - `src/ssh` / `include/ssh`:SSH 客户端 ## 已知说明 - `Save all` 菜单项当前仍是占位实现(尚未完成)。 - Outline / Hierarchy 目前主要针对 IR 文件生效。 - 为保证性能,超大文件会限制部分解析/高亮能力。 ## 开发建议 - 使用项目根目录 `.clang-format` 统一格式 - 先阅读 `AGENTS.md` 里的开发约定 - 目前无完整自动化测试,建议按场景手动验证 ## 许可证 本项目采用 Apache License 2.0。 - 主许可证:`LICENSE` - 其它第三方组件请参考对应目录下许可证文件 ## 项目地址 - Gitee: https://gitee.com/zqhcoding/QEditor