GNU Readline-like line editing module

line editing
pip install readlike==0.1.3



A Python module that provides GNU Readline-like line editing functions (the default Emacs-style ones). If you just want to use Readline, use the readline package in the standard library--but this package allows access to those capabilties in settings outside of a standard CLI.

Currently, all stateless Readline commands are implemented. This means that yanking and history are not supported.

This module is especially well-suited to interfacing with Urwid due to a shared syntax for describing key inputs.


Install or upgrade to the latest version from PyPI:

[sudo] pip install -U readlike

Quick example

Transpose words:

>>> import readlike
>>> readlike.edit('perilous siege', 9, 'meta t')
('siege perilous', 14)


Implemented commands and their correspondings keys are as follows:

backward-char            ctrl b, left
backward-delete-char     ctrl h, backspace
backward-kill-word       ctrl meta h, meta backspace
backward-word            meta b, meta left
beginning-of-line        ctrl a, home
capitalize-word          meta c
delete-char              ctrl d, delete
delete-horizontal-space  meta \
downcase-word            meta l
end-of-line              ctrl e, end
forward-char             ctrl f, right
forward-word             meta f, meta right
kill-line                ctrl k
kill-word                meta d, meta delete
transpose-chars          ctrl t
transpose-words          meta t
unix-line-discard        ctrl u
unix-word-rubout         ctrl w
upcase-word              meta u

For more information about each command, see readline(3) or see the doc strings in

Projects using Readlike