A professional vim-style terminal code editor built with Python 3.12+
β¨ Modal Editing - Full vim-style modal editing (Normal, Insert, Visual, Command modes)
β¨οΈ Vim Keybindings - Comprehensive vim keybindings for efficient text editing
π¨ Syntax Highlighting - Multi-language syntax highlighting powered by Pygments
β©οΈ Undo/Redo - Unlimited undo/redo with action grouping
π Search & Replace - Powerful search with regex support
π Clipboard Integration - Seamless system clipboard integration
π― Line Numbers - Optional line number display
β‘ Fast & Lightweight - Efficient gap buffer implementation
π Themes - Multiple color schemes
π¦ Cross-Platform - Works on Windows, macOS, and Linux
Download the latest release for your platform:
- Windows: Download and run
TextEditee-Setup.exe - macOS: Download and open
TextEditee.dmg - Linux: Download
textediteebinary or install via package manager
# Clone the repository
git clone https://github.com/yourusername/texteditee.git
cd texteditee
# Install dependencies
pip install -r requirements.txt
# Run the editor
python -m src.texteditee.main [filename]pip install -e .
texteditee [filename]# Open a file
texteditee myfile.txt
# Open editor without a file
textediteeNavigation:
h,j,k,l- Move left, down, up, rightw,b,e- Word forward, backward, end0,$,^- Line start, end, first non-blankgg,G- First line, last line{number}G- Go to line number
Editing:
i,a- Insert before/after cursorI,A- Insert at line start/endo,O- Open line below/abovex- Delete characterdd- Delete lineD- Delete to line endyy- Yank (copy) linep,P- Paste after/before
Undo/Redo:
u- UndoCtrl+r- Redo
Search:
/- Search forward?- Search backwardn,N- Next/previous match
Visual Mode:
v- Character-wise visual modeV- Line-wise visual mode
Press : to enter command mode:
:w- Save file:w filename- Save as filename:q- Quit (fails if unsaved changes):q!- Force quit (discard changes):wqor:x- Save and quit:e filename- Open file:{number}- Go to line number:s/pattern/replacement/- Substitute on current line:{start},{end}s/pattern/replacement/- Substitute on range
Esc- Return to normal modeBackspace- Delete previous characterEnter- New lineTab- Insert 4 spaces
Use :set commands:
:set number- Show line numbers:set nonumber- Hide line numbers
Available themes:
default- Classic terminal colorsmonokai- Monokai color scheme
- Python 3.12+
- pip
- PyInstaller (for building binaries)
- NSIS (Windows, for installer)
- dpkg-deb (Linux, for DEB packages)
- rpmbuild (Linux, for RPM packages)
- hdiutil (macOS, for DMG)
cd installers
build_windows.batOutput: dist\TextEditee-Setup.exe
cd installers
chmod +x build_linux.sh
./build_linux.shOutput: dist/texteditee
cd installers
chmod +x build_macos.sh
./build_macos.shOutput: dist/texteditee
TextEditee follows clean architecture principles:
- Core - Buffer management, cursor, modes, viewport
- Input - Keyboard handling, command parsing, key bindings
- UI - Terminal rendering, themes, status line
- Features - Syntax highlighting, search, undo/redo, clipboard
- FS - File operations, buffer management
- Gap Buffer - Efficient text editing with O(1) insertions
- Command Pattern - Undo/redo and key bindings
- Strategy Pattern - Different editing modes
- Singleton Pattern - Clipboard and configuration
pytest tests/# Format code
black src/
# Type checking
mypy src/
# Linting
ruff check src/Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - See LICENSE file for details
Because Python can be a great choice for almost any use case, including building professional-grade terminal editors. TextEditee proves that Python's ecosystem and modern language features make it suitable for creating fast, efficient, and user-friendly development tools.