Skip to main content

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” />

![search_replace](https://github.com/eliranwong/eTextEdit/assets/25262722/c7a564ce-2e3c-4913-8210-52e259545044?raw=True)

![menu](https://github.com/eliranwong/eTextEdit/assets/25262722/7703f138-e56e-4c6f-84fc-4abe768f161a?raw=True)

# 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

etextedit-0.9.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

etextedit-0.9-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file etextedit-0.9.tar.gz.

File metadata

  • Download URL: etextedit-0.9.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for etextedit-0.9.tar.gz
Algorithm Hash digest
SHA256 e65643fe369a9aa75aefaba2008ad1276b0f29ad299edad302c91affa766f366
MD5 2f1345ace7bdbece135a971a23df7860
BLAKE2b-256 81e0a15c8b83f5a3238294cb3f4154f2130cfd094176834b769c3e24d7061a78

See more details on using hashes here.

File details

Details for the file etextedit-0.9-py3-none-any.whl.

File metadata

  • Download URL: etextedit-0.9-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for etextedit-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f0c713040f967e9c39525e131fc67667e6d369b69e2399523660df9eb258e6ff
MD5 cc1fcb4e2b74c90c5ae3c495936a4980
BLAKE2b-256 10f92a61d28e6d998de9571872b3a469784064a5033d485b6b46d3507a99d1fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page