中文 | English
**PNANA+**是由 ND-Zyth 维护和增强的版本,基于FTXUI构建的现代化终端文本编辑器,灵感来自Nano、Micro和Sublime Text。提供友好的用户界面、直观的快捷键和强大的编辑功能。完全基于C++实现,无Go依赖。
此项目是原始 pnana 项目的增强版本,增加了许多新功能和改进。
- 28种精美主题: Monokai(默认)、Dracula、Solarized Dark/Light、OneDark、Nord...
- 三栏布局: 顶部菜单栏、中间编辑区、底部帮助栏
- 智能状态栏: 显示文件信息、光标位置、编码、修改状态
- 行号显示: 绝对行号和相对行号切换
- 当前行高亮: 清晰标识编辑位置
摒弃传统Vim的学习曲线,采用现代编辑器的直观快捷键。使用熟悉的 Ctrl+S 保存、Ctrl+Shift+S 另存为 (Save As)、Ctrl+Z 撤销等标准快捷键,零学习成本。
详细快捷键列表:请查看 快捷键文档
- 标签页系统: 同时打开多个文件
- 分屏编辑: 水平/垂直分屏
- 快速切换: 键盘和鼠标快速切换文件
- 内置终端: 支持在编辑器中打开终端
- 面板分割: 支持水平和垂直分割终端面板
- 快捷键:
- `Ctrl+`` - 切换终端显示
- `Ctrl+Shift+`` - 水平分割终端
Ctrl+Alt+V- 垂直分割终端Ctrl+Alt+X- 关闭活动终端面板Ctrl+Alt+→- 切换到下一个终端面板Ctrl+Alt+←- 切换到上一个终端面板
- 自动缩进: 根据文件类型智能缩进
- 括号匹配: 自动补全括号、引号
- 多光标编辑: 同时编辑多个位置(现在支持!使用 Alt+Shift+↑/↓ 添加光标,Alt+点击添加光标)
- 列选择: 按住Alt进行列选择
- 智能撤销/重做: 无限次撤销重做
- 正则表达式: 支持正则搜索
- 大小写敏感: 可选大小写匹配
- 批量替换: 一次替换所有匹配
- 即时预览: 搜索结果实时高亮
支持多种编程语言:C/C++, Python, JavaScript/TypeScript, Java, Go, Rust, Ruby, PHP, HTML/CSS, JSON, XML, Markdown, Shell, SQL, YAML, TOML
增强的 Tree-sitter 支持:
- 自动检测并链接所有可用的 Tree-sitter 语言库
- 支持更多编程语言的精确语法高亮
- 自动安装脚本,可自动下载和编译缺失的语言库
- 向后兼容:未找到 Tree-sitter 库时自动回退到原生语法高亮器
- 代码补全:智能代码补全,支持多种编程语言
- 实时诊断:语法错误和警告实时显示
- 代码导航:跳转到定义、查找引用
- 符号搜索:快速查找函数、类、变量等符号
- 自动配置:自动检测并配置 LSP 服务器
详细 LSP 说明:请查看 插件文档
- 强大的扩展能力:使用 Lua 编写插件,轻松扩展编辑器功能 ls l- 丰富的 API:提供完整的编辑器 API,支持文件操作、光标控制、事件监听等
- 简单易用:参考 Neovim 的设计,插件开发简单直观
- 自动加载:插件自动发现和加载,无需手动配置
详细插件开发指南:请查看 插件文档
使用简单的 JSON 配置文件,支持主题、字体、缩进等各项设置。
详细配置说明:请查看 配置文档
依赖文档 - 项目依赖说明和安装指南
# 克隆仓库
cd /path/to/pnana
chmod +x ./build.sh
# 编译项目
./build.sh
# 运行pnana
./build/pnana/pnana
# 或安装到系统
cd build
sudo make install
pnana filename.txt# 启动空白编辑器
pnana
# 打开单个文件
pnana file.txt
# 打开多个文件
pnana file1.txt file2.cpp file3.py
# 指定配置文件
pnana --config ~/.config/pnana/custom.json
# 使用特定主题
pnana --theme dracula file.txt
# 只读模式打开
pnana --readonly file.txt详细的文档和指南请查看 docs 文件夹:
- 快捷键参考 - 完整的快捷键列表和使用说明
- 配置文档 - 详细的配置选项和示例
- 插件开发指南 - Lua 插件系统开发文档和 LSP 使用说明
- 依赖文档 - 项目依赖说明和安装指南
- 菜单功能 - 菜单栏功能详细说明
- 主题文档 - 所有主题的介绍和预览
- 开发路线图 - 版本计划和功能路线图
- 产品对比 - 与同类产品的详细对比
- 快速入门 - 5分钟快速上手指南
- 零学习成本: 使用熟悉的Ctrl快捷键,无需记忆复杂命令
- 开箱即用: 无需配置即可获得出色的编辑体验
- 现代化设计: 精美的UI和舒适的配色方案
- 轻量高效: 基于终端,资源占用少,启动迅速
- 功能完整: 不输于GUI编辑器的功能集合
| 功能 | pnana | Nano | Micro | Vim/Neovim |
|---|---|---|---|---|
| 学习曲线 | 低 | 低 | 低 | 高 |
| 现代UI | ✅ | ❌ | ✅ | 需配置 |
| 鼠标支持 | ✅ | ✅ | 需配置 | |
| 语法高亮 | ✅ | ✅ | ✅ | |
| 多文件 | ✅ | ❌ | ✅ | ✅ |
| 插件系统 | ✅ | ❌ | ✅ | ✅ |
| LSP支持 | ✅ | ❌ | ✅ | ✅ |
| 配置简单 | ✅ | ✅ | ✅ | ❌ |
详细对比:请查看 产品对比文档
本项目受以下优秀项目启发:
- Nano - 简单易用的终端编辑器
- Micro - 现代化的终端编辑器
- Sublime Text - 经典的文本编辑器
- VS Code - 现代IDE
- FTXUI - 强大的终端UI库
本项目采用MIT许可证 - 详见LICENSE文件。
