Skip to main content

Simple Python terminal (TUI) multi-line editor

Project description

This is just a simple multi-line editor for the terminal (VT100). It is a bit like input (doc) but supporting multiple lines and behaving more like a simple editor. It is different to other editors and other TUI frameworks in that it will not go full-screen but only use the last N lines of the terminal. It is intended to be simple and flexible and hackable, i.e. the behavior can be changed, typing events can be handled, etc. It takes extra care to handle terminal resizing. It also supports to show a status bar (potential multi-line).

Homepage: https://github.com/albertz/py-tui-editor

Installation

The project is on PyPI: https://pypi.org/project/tui-editor/

Thus you can just do:

pip install tui-editor

Usage

Simple empty editor:

>>> from tui_editor import TuiEditor
>>> editor = TuiEditor()
>>> editor.edit()
>>> editor.get_text()
'Hello World!'

Predefined editable text:

>>> from tui_editor import TuiEditor
>>> editor = TuiEditor()
>>> editor.set_text('Hello World!')
>>> editor.edit()
>>> editor.get_text()
'Hello World!'

See demo-prompt.py and demo-editor.py.

Screenshot

https://raw.githubusercontent.com/albertz/py-tui-editor/master/screenshots/2022-09-02.png?sanitize=true

Screencast

https://img.youtube.com/vi/zIFMyBkYwqg/maxresdefault.jpg

This shows the demo-prompt.py and demo-editor.py.

https://img.youtube.com/vi/4ERr0o9k72Y/maxresdefault.jpg

This uses a very custom small app, which I use to take over annotated PDF edits into my Latex file, where I get the editor, and it shows me the live-diff in the status bar of the editor.

Motivation

Python TUI?

What I want:

  • simple multi-line editor

  • not whole screen but only next N lines

  • show interactive feedback. e.g. mark edits, show number of edits, show diff in separate plane or so

Licence

MIT License

History

2015 Paul Sokolovsky: picotui project seditor.py example. 2022 Albert Zeyer: extend and redesign and package just the text editor as this library.

References

https://en.wikipedia.org/wiki/ANSI_escape_code https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

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

tui-editor-1.20220902.121928.tar.gz (10.5 kB view details)

Uploaded Source

File details

Details for the file tui-editor-1.20220902.121928.tar.gz.

File metadata

  • Download URL: tui-editor-1.20220902.121928.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for tui-editor-1.20220902.121928.tar.gz
Algorithm Hash digest
SHA256 f1204def33c76a57e768672357df7c8b19376030095ed9cf4deb5850f7c6cdc4
MD5 c50f05140e80278546f44529d88db696
BLAKE2b-256 1c44e5991ae34da68320f043c82182b03f2f4aeb877d454def86dc1bf53acda6

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