English | δΈζ
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.
- 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
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
- Tab System: Open multiple files simultaneously
- Split Editing: Horizontal/vertical split screens οΌplannedοΌ
- Quick Switching: Fast file switching with keyboard
- Auto Indent: Intelligent indentation based on file type, powered by Tree-sitter AST parsing, see Smart Indent Documentation
- 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
- 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
Supports multiple programming languages: C/C++, Python, JavaScript/TypeScript, Java, Go, Rust, Ruby, PHP, HTML/CSS, JSON, XML, Markdown, Shell, SQL, YAML, TOML
- 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
- 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
Simple JSON configuration file supporting themes, fonts, indentation, and other settings.
Detailed Configuration Guide: See Configuration Documentation
β οΈ 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 to install corresponding dependencies
- Quick Start: For detailed build steps and feature enabling guide, see Quick Start Guide
Dependencies Documentation - Project dependencies and installation
Quick Start Guide - 5-minute quick start guide
# 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# 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
Detailed documentation and guides are available in the docs folder:
- Keyboard Shortcuts Reference - Complete shortcut list and usage instructions
- Configuration Documentation - Detailed configuration options and examples
- Smart Indent Documentation - Tree-sitter smart indent feature guide
- Plugin Development Guide - Lua plugin API & examples
- Dependencies Documentation - Project dependencies and installation guide
- Development Roadmap - Version plans and feature roadmap
- Quick Start Guide - 5-minute quick start guide
- Zero Learning Curve: Use familiar Ctrl shortcuts, no need to memorize complex commands
- Ready to Use: Get an excellent editing experience without configuration
- Modern Design: Beautiful UI and comfortable color schemes
- Lightweight and Efficient: Terminal-based, low resource usage, fast startup
- Feature Complete: Feature set comparable to GUI editors
| 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 | β | β | β | β |
This project is inspired by the following excellent projects:
- Nano - Simple and easy-to-use terminal editor
- Micro - Modern terminal editor
- Sublime Text - Classic text editor
- VS Code - Modern IDE
- FTXUI - Powerful terminal UI library
This project is licensed under the MIT License - see the LICENSE file for details.
