Emacs-like Python-infused editor
Project description
elpie
elpie is a minimalist Emacs-style command-line text editor written in Python, developed by AI (Microsoft Copilot) and product architect Francis Peck. It leverages only the standard library (curses, dataclasses) to deliver a familiar editing experience without external dependencies.
Features
- Emacs-style keybindings for navigation and editing
- Kill-ring support with
Ctrl-k(kill-line) andCtrl-y(yank) - Auto-save via
Ctrl-sand graceful exit withCtrl-xCtrl-c - Zero external dependencies; runs on Python 3.8+
- Easy pip installation and console-script usage
Installation
# From your project directory (with pyproject.toml present)
pip install .
or ...
pip install elpie
Usage
elpie [path/to/file.txt]
Providing a filename opens (or creates) that file. Omitting the argument opens an empty buffer.
| Key Combination | Action |
|---|---|
| Ctrl-f / → | Move cursor forward one character |
| Ctrl-b / ← | Move cursor backward one character |
| Ctrl-n / ↓ | Move cursor to next line |
| Ctrl-p / ↑ | Move cursor to previous line |
| Enter | Insert newline |
| Backspace | Delete character or join current with previous line |
| Ctrl-k | Kill from cursor to end of line |
| Ctrl-y | Yank (paste) last killed text |
| Ctrl-s | Save current buffer |
| Ctrl-x, Ctrl-f | Open file |
| Ctrl-x, b | Switch buffer |
| Ctrl-x, Ctrl-c | Exit editor |
Configuration
At present, elpie does not support a user configuration file or custom keybindings. Future releases may introduce:
- Custom keybinding profiles
- Plugin hooks for additional functionality
- Syntax highlighting via curses color pairs
Development
To work on elpie locally:
git clone https://github.com/frncspeck/elpie.git
cd elpie
pip install -e .
When tests are available, run them with:
pytest
Contributing
Contributions are welcome! Please open issues for bug reports or feature requests, and submit pull requests for enhancements.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elpie-0.1.1.tar.gz.
File metadata
- Download URL: elpie-0.1.1.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7655afd54c0d511a98668834d2ee8a0ee0a3bce3e6d30ebf8df0e70d5f96983e
|
|
| MD5 |
d00ccd2f97757325acf8135cc2ea47da
|
|
| BLAKE2b-256 |
411e59e051ea3de880ac333e956fa30fd77eb26286b504d4751aecb6daf1efae
|
File details
Details for the file elpie-0.1.1-py3-none-any.whl.
File metadata
- Download URL: elpie-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e788dc420aeaab62ab26b3eba031ee3d3a67a93a321298bc7e4121f19b0f5f97
|
|
| MD5 |
4e15c666dc4b202532b9e4146ab3ed7f
|
|
| BLAKE2b-256 |
ae5d5a14607f4c407dae2b2605594f1416010943a6212197f682c9c38c960d05
|