# 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 - Modern Terminal Text Editor






**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
## β¨ 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
[](https://star-history.com/#Cyxuan0311/PNANA&Date)
---