# PNANA **Repository Path**: wisejohn/PNANA ## Basic Information - **Project Name**: PNANA - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-13 - **Last Updated**: 2026-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
pnana logo # pnana - Modern Terminal Text Editor ![Version](https://img.shields.io/badge/version-v0.0.7-5C2D91?style=for-the-badge&logo=github) ![C++](https://img.shields.io/badge/C++-17-00599C?style=for-the-badge&logo=c%2B%2B&logoColor=white) ![FTXUI](https://img.shields.io/badge/FTXUI-Terminal%20UI-FF6B35?style=for-the-badge&logo=terminal) ![License](https://img.shields.io/badge/License-MIT-000000?style=for-the-badge&logo=opensourceinitiative&logoColor=white) ![Platform](https://img.shields.io/badge/Platform-Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) ![Platform](https://img.shields.io/badge/Platform-macOS-999999?style=for-the-badge&logo=apple&logoColor=white) **English** | [δΈ­ζ–‡](README_CN.md) **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.
## πŸ“Έ Demo
pnana demo
## ✨ Core Features ### 🎨 Beautiful and Friendly Interface - **Multiple Themes**: Monokai (default), Dracula, Solarized Dark/Light, OneDark, Nord... - **Three-Column Layout**: Top menu bar, middle editing area, bottom help bar - **Smart Status Bar**: Displays file information, cursor position, encoding, and modification status - **Line Numbers**: Switch between absolute and relative line numbers - **Current Line Highlighting**: Clearly identifies the editing position ### ⌨️ Modern Keyboard Shortcuts Abandoning the learning curve of traditional Vim, pnana adopts intuitive shortcuts from modern editors. Use familiar standard shortcuts like `Ctrl+S` to save, `Ctrl+Z` to undo, with zero learning curve. **Complete Shortcut List**: See [Keyboard Shortcuts Documentation](docs/KEYBINDINGS.md) ### πŸ“ Powerful Editing Features #### Multi-File Support - **Tab System**: Open multiple files simultaneously - **Split Editing**: Horizontal/vertical split screens (plannedοΌ‰ - **Quick Switching**: Fast file switching with keyboard #### Smart Editing - **Auto Indent**: Intelligent indentation based on file type, powered by Tree-sitter AST parsing, see [Smart Indent Documentation](docs/SMART_INDENT_EN.md) - **Bracket Matching**: Auto-complete brackets and quotes - **Multi-Cursor Editing**: Edit multiple positions simultaneously (planned) - **Column Selection**: Hold Alt for column selection - **Smart Undo/Redo**: Unlimited undo/redo #### Search and Replace - **Regular Expressions**: Support for regex search - **Case Sensitive**: Optional case matching - **Batch Replace**: Replace all matches at once - **Live Preview**: Real-time search result highlighting #### Syntax Highlighting Supports multiple programming languages: C/C++, Python, JavaScript/TypeScript, Java, Go, Rust, Ruby, PHP, HTML/CSS, JSON, XML, Markdown, Shell, SQL, YAML, TOML #### LSP Support (Language Server Protocol) - **Code Completion**: Intelligent code completion for multiple programming languages - **Real-time Diagnostics**: Syntax errors and warnings displayed in real-time - **Code Navigation**: Jump to definition, find references - **Symbol Search**: Quickly find functions, classes, variables, and more - **Auto Configuration**: Automatically detects and configures LSP servers **LSP**: Built-in LSP client for completion, diagnostics, navigation #### Lua Plugin System (PlanedοΌ‰ - **Powerful Extensibility**: Write plugins in Lua to easily extend editor functionality - **Rich API**: Complete editor API supporting file operations, cursor control, event listening, and more - **Easy to Use**: Inspired by Neovim's design, plugin development is simple and intuitive - **Auto Loading**: Plugins are automatically discovered and loaded, no manual configuration needed **Detailed Plugin Development Guide**: See [Plugin Documentation](docs/PLUGIN_DEVELOPMENT.md) ### πŸ”§ Configuration System Simple JSON configuration file supporting themes, fonts, indentation, and other settings. **Detailed Configuration Guide**: See [Configuration Documentation](docs/CONFIGURATION.md) ## πŸš€ Quick Start > **⚠️ Important:** Before compiling, please ensure all required dependencies are installed. > > - **Required**: FTXUI terminal UI library must be installed > - **Optional Features**: To enable advanced features like image preview, Tree-sitter syntax highlighting, Lua plugin system, SSH support, AI client, etc., please refer to [Dependencies Documentation](docs/DEPENDENCIES.md) to install corresponding dependencies > - **Quick Start**: For detailed build steps and feature enabling guide, see [Quick Start Guide](QUICKSTART.md) ### Build Requirements **[Dependencies Documentation](docs/DEPENDENCIES.md)** - Project dependencies and installation **[Quick Start Guide](QUICKSTART.md)** - 5-minute quick start guide ### Build and Install ```bash # Clone repository cd /path/to/pnana chmod +x ./build.sh # Build project ./build.sh # Run pnana ./build/pnana # Or install to system cd build sudo make install pnana filename.txt ``` ### Usage Examples ```bash # Start blank editor pnana # Open single file pnana file.txt # Specify config file pnana --config ~/.config/pnana/config.json # Use specific theme pnana --theme dracula file.txt ``` ## πŸ“– Documentation Detailed documentation and guides are available in the [docs](docs/) folder: - **[Keyboard Shortcuts Reference](docs/KEYBINDINGS.md)** - Complete shortcut list and usage instructions - **[Configuration Documentation](docs/CONFIGURATION.md)** - Detailed configuration options and examples - **[Smart Indent Documentation](docs/SMART_INDENT_EN.md)** - Tree-sitter smart indent feature guide - **[Plugin Development Guide](docs/PLUGIN_DEVELOPMENT.md)** - Lua plugin API & examples - **[Dependencies Documentation](docs/DEPENDENCIES.md)** - Project dependencies and installation guide - **[Development Roadmap](docs/ROADMAP.md)** - Version plans and feature roadmap - **[Quick Start Guide](QUICKSTART.md)** - 5-minute quick start guide ## πŸ’‘ Why Choose pnana? 1. **Zero Learning Curve**: Use familiar Ctrl shortcuts, no need to memorize complex commands 2. **Ready to Use**: Get an excellent editing experience without configuration 3. **Modern Design**: Beautiful UI and comfortable color schemes 4. **Lightweight and Efficient**: Terminal-based, low resource usage, fast startup 5. **Feature Complete**: Feature set comparable to GUI editors ## 🀝 Comparison with Similar Products | Feature | pnana | Nano | Micro | Vim/Neovim | |---------|-------|------|-------|------------| | Learning Curve | Low | Low | Low | High | | Modern UI | βœ… | ❌ | βœ… | Requires config | | Mouse Support | ❌ | ⚠️ | βœ… | Requires config | | Syntax Highlighting | βœ… | ⚠️ | βœ… | βœ… | | Multi-File | βœ… | ❌ | βœ… | βœ… | | Plugin System | βœ… | ❌ | βœ… | βœ… | | LSP Support | βœ… | ❌ | βœ… | βœ… | | Simple Configuration | βœ… | βœ… | βœ… | ❌ | ## πŸ“š References and Inspiration This project is inspired by the following excellent projects: - [Nano](https://www.nano-editor.org/) - Simple and easy-to-use terminal editor - [Micro](https://micro-editor.github.io/) - Modern terminal editor - [Sublime Text](https://www.sublimetext.com/) - Classic text editor - [VS Code](https://code.visualstudio.com/) - Modern IDE - [FTXUI](https://github.com/ArthurSonzogni/FTXUI) - Powerful terminal UI library ## πŸ“ License This project is licensed under the MIT License - see the LICENSE file for details. ## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=Cyxuan0311/PNANA&type=Date)](https://star-history.com/#Cyxuan0311/PNANA&Date) ---