GitHunt
CY

PNANA is a modern terminal text editor built with FTXUI, inspired by Nano, Micro, and Sublime Text. It provides a friendly user interface, intuitive keyboard shortcuts, and powerful editing features.

pnana logo

pnana - 现代化终端文本编辑器

pnana
C++
FTXUI
License

中文 | English

pnana是一个基于FTXUI构建的现代化终端文本编辑器,灵感来自Nano、Micro和Sublime Text。提供友好的用户界面、直观的快捷键和强大的编辑功能。

📸 演示

pnana demo

✨ 核心特性

🎨 美观友好的界面

  • 多种主题: Monokai(默认)、Dracula、Solarized Dark/Light、OneDark、Nord...
  • 三栏布局: 顶部菜单栏、中间编辑区、底部帮助栏
  • 智能状态栏: 显示文件信息、光标位置、编码、修改状态
  • 行号显示: 绝对行号和相对行号切换
  • 当前行高亮: 清晰标识编辑位置

⌨️ 现代化快捷键

摒弃传统Vim的学习曲线,采用现代编辑器的直观快捷键。使用熟悉的 Ctrl+S 保存、Ctrl+Z 撤销等标准快捷键,零学习成本。

详细快捷键列表:请查看 快捷键文档

📝 强大的编辑功能

多文件支持

  • 标签页系统: 同时打开多个文件
  • 分屏编辑: 水平/垂直分屏 (计划中)
  • 快速切换: 键盘快速切换文件

智能编辑

  • 自动缩进: 根据文件类型智能缩进 (计划中)
  • 括号匹配: 自动补全括号、引号 (计划中)
  • 多光标编辑: 同时编辑多个位置(计划中)
  • 列选择: 按住Alt进行列选择
  • 智能撤销/重做: 无限次撤销重做

搜索和替换

  • 正则表达式: 支持正则搜索
  • 大小写敏感: 可选大小写匹配
  • 批量替换: 一次替换所有匹配
  • 即时预览: 搜索结果实时高亮

语法高亮

支持多种编程语言:C/C++, Python, JavaScript/TypeScript, Java, Go, Rust, Ruby, PHP, HTML/CSS, JSON, XML, Markdown, Shell, SQL, YAML, TOML

LSP 支持(Language Server Protocol)

  • 代码补全:智能代码补全,支持多种编程语言
  • 实时诊断:语法错误和警告实时显示
  • 代码导航:跳转到定义、查找引用
  • 符号搜索:快速查找函数、类、变量等符号
  • 自动配置:自动检测并配置 LSP 服务器

LSP:编辑器内置 LSP 客户端,支持代码补全、诊断、跳转等

Lua 插件系统 (计划中)

  • 强大的扩展能力:使用 Lua 编写插件,轻松扩展编辑器功能
  • 丰富的 API:提供完整的编辑器 API,支持文件操作、光标控制、事件监听等
  • 简单易用:参考 Neovim 的设计,插件开发简单直观
  • 自动加载:插件自动发现和加载,无需手动配置

详细插件开发指南:请查看 插件文档

🔧 配置系统

使用简单的 JSON 配置文件,支持主题、字体、缩进等各项设置。

详细配置说明:请查看 配置文档

🚀 快速开始

编译要求

依赖文档 - 项目依赖说明和安装指南

编译安装

# 克隆仓库
cd /path/to/pnana
chmod +x ./build.sh

# 编译项目
./build.sh

# 运行pnana
./build/pnana

# 或安装到系统
cd build
sudo make install
pnana filename.txt

使用示例

# 启动空白编辑器
pnana

# 打开单个文件
pnana file.txt

# 指定配置文件
pnana --config ~/.config/pnana/config.json

# 使用特定主题
pnana --theme dracula file.txt

📖 文档

详细的文档和指南请查看 docs 文件夹:

💡 为什么选择pnana?

  1. 零学习成本: 使用熟悉的Ctrl快捷键,无需记忆复杂命令
  2. 开箱即用: 无需配置即可获得出色的编辑体验
  3. 现代化设计: 精美的UI和舒适的配色方案
  4. 轻量高效: 基于终端,资源占用少,启动迅速
  5. 功能完整: 不输于GUI编辑器的功能集合

🤝 对比同类产品

功能 pnana Nano Micro Vim/Neovim
学习曲线
现代UI 需配置
鼠标支持 ⚠️ 需配置
语法高亮 ⚠️
多文件
插件系统
LSP支持
配置简单

📚 参考和灵感

本项目受以下优秀项目启发:

📝 许可证

本项目采用MIT许可证 - 详见LICENSE文件。

🌟 Star History

Star History Chart

Languages

C++87.3%CMake2.2%Python2.0%Shell1.8%Go0.9%Lua0.7%Java0.4%Rust0.4%Elixir0.4%C#0.4%Assembly0.4%TypeScript0.3%Kotlin0.3%Swift0.3%Clojure0.3%Scala0.3%PHP0.3%Perl0.2%Ruby0.2%R0.2%LLVM0.1%Haskell0.1%JavaScript0.1%Standard ML0.1%Common Lisp0.1%Zig0.1%Dockerfile0.0%C0.0%Makefile0.0%HTML0.0%C30.0%Nim0.0%Meson0.0%

Contributors

MIT License
Created December 28, 2025
Updated March 13, 2026
Cyxuan0311/PNANA | GitHunt