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

## 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:

https://github.com/eliranwong/etextedit/blob/main/package/etextedit/etextedit_plugins/Change%20to%20Upper%20Cases.py

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-1.0.3.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

etextedit-1.0.3-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

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

Hashes for etextedit-1.0.3.tar.gz
Algorithm Hash digest
SHA256 34baac5fc44b3588d14982fcd40f15a47117a30ce7e18afb0f4069ae2fa2f777
MD5 93b7d9c3fd1356743b0c2abab82d903f
BLAKE2b-256 a38f86084e00ddf78e6c83d1edb999d367a725e62f9a37054e0d57e9ebd145f9

See more details on using hashes here.

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

Hashes for etextedit-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a6e9ce4b2e3c37ab458503dc045f620de7dbfcebd3adbd4b788628f71f357f0f
MD5 0e3b0c45b1918e437828ceec61c11279
BLAKE2b-256 3b05b1974ba2984f2bd5b2e865787535f8e3bc71877c11426180e1185ab522a2

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