eTextEdit, a lightweight text editor built on prompt-toolkit
Project description
# eTextEdit Extensible Text Editor; built with prompt toolkit
Originally a simple text editor created by Jonathan Slenders Source: https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/examples/full-screen/text-editor.py
Modified and Enhanced by Eliran Wong: * added file and clipboard utilities * added regex search & replace feature * added key bindings * added handling of unasaved changes * added dark theme and lexer style * support stdin, e.g. echo “Hello world!” | etextedit * support file argument, e.g. etextedit <filename> * support startup with clipboard text content, e.g. etextedit -p true * support printing * support plugins, written in python, to extend the editor functionalities; place plugins in ~/etextedit/plugins
Check plugins examples at https://github.com/eliranwong/agentmake/tree/main/agentmake/etextedit_plugins
eTextEdit repository: https://github.com/eliranwong/eTextEdit
# Screenshots
<img width=”706” height=”519” alt=”Image” src=”https://github.com/user-attachments/assets/dcd4f05d-3e43-4f4b-96b2-5994fda130bf” />

# Download
> pip install –upgrade etextedit
# Usage
To launch eTextEdit:
> etextedit
To open a text file, e.g. test.txt:
> etextedit test.txt
To pipe in a text string, e.g. “Hello World!”:
> echo “Hello World!” | etextedit
To append a file, e.g. test.txt, with a text string, e.g. “Hello World!”:
> echo “Hello World!” | etextedit test.txt
# Key Bindings
escape + m: toggle menu
control + k: help
control + q: quit
control + a: select all
escape + a: deselect all
control + c: copy
control + v: paste
control + x: cut
control + z: undo
control + i: insert spaces
control + f: find
escape + f: clear i-search highlights
control + r: find & replace
control + l: go to line
control + d: delete
control + n: new file
control + o: open file
control + s: save file
control + w: save as file
## Navigation
escape + a: go to beginning of document
escape + z: go to end of document
escape + b: go to beginning of current line
escape + e: go to end of current line
## Plugins
An ‘etextedit’ plugin is designed to run script to process the selected text or the whole text in the editor.
Examples of ‘etextedit’ plugins:
https://github.com/eliranwong/etextedit/tree/main/package/etextedit/etextedit_plugins
https://github.com/eliranwong/agentmake/tree/main/agentmake/etextedit_plugins
https://github.com/eliranwong/biblemate/tree/main/package/biblemate/etextedit/plugins
User can create custom plugins and place them in directory ‘~/etextedit/plugins’ for them to work with ‘etextedit’.
Each ‘etextedit’ plugin is written in python.
Read the comments in the following example to get ideas how to write a plugin:
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 etextedit-1.0.3.tar.gz.
File metadata
- Download URL: etextedit-1.0.3.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34baac5fc44b3588d14982fcd40f15a47117a30ce7e18afb0f4069ae2fa2f777
|
|
| MD5 |
93b7d9c3fd1356743b0c2abab82d903f
|
|
| BLAKE2b-256 |
a38f86084e00ddf78e6c83d1edb999d367a725e62f9a37054e0d57e9ebd145f9
|
File details
Details for the file etextedit-1.0.3-py3-none-any.whl.
File metadata
- Download URL: etextedit-1.0.3-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6e9ce4b2e3c37ab458503dc045f620de7dbfcebd3adbd4b788628f71f357f0f
|
|
| MD5 |
0e3b0c45b1918e437828ceec61c11279
|
|
| BLAKE2b-256 |
3b05b1974ba2984f2bd5b2e865787535f8e3bc71877c11426180e1185ab522a2
|