Skip to content
ND-ZythPublic

About

PNANA+, a terminal text editor based on the awesome editor PNANA.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

pnana logo

PNANA+ - 现代化终端文本编辑器

pnana C++ FTXUI License

中文 | English

**PNANA+**是由 ND-Zyth 维护和增强的版本,基于FTXUI构建的现代化终端文本编辑器,灵感来自Nano、Micro和Sublime Text。提供友好的用户界面、直观的快捷键和强大的编辑功能。完全基于C++实现,无Go依赖。

此项目是原始 pnana 项目的增强版本,增加了许多新功能和改进。

📸 演示

pnana demo

✨ 核心特性

🎨 美观友好的界面

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

⌨️ 现代化快捷键

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

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

📝 强大的编辑功能

多文件支持

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

终端增强功能 (tmux-like)

  • 内置终端: 支持在编辑器中打开终端
  • 面板分割: 支持水平和垂直分割终端面板
  • 快捷键:
    • `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 支持(Language Server Protocol)

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

详细 LSP 说明:请查看 插件文档

Lua 插件系统

  • 强大的扩展能力:使用 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 文件夹:

💡 为什么选择pnana?

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

🤝 对比同类产品

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

详细对比:请查看 产品对比文档

📚 参考和灵感

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

📝 许可证

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

🌟 Star History

Star History Chart


About

PNANA+, a terminal text editor based on the awesome editor PNANA.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages