Skip to main content

A Python REPL with Vim Keybinds

Project description


Vypl demo

Vypl is a terminal Python REPL built for Vim users. It gives you a real Python environment with syntax highlighting, smart autocompletion, and full modal editing — normal mode, motions, operators, named registers, and ex commands, all inside the REPL.

Install

pip install vypl

Or from source:

git clone https://github.com/HoraDomu/Vypl
cd Vypl
pip install -e .

Usage

vypl

Vim Features

Press ESC to enter normal mode. Press i, a, A, or I to return to insert.

Keybind Action
ESC Normal mode
i / a / A / I Insert mode
h j k l Move cursor / navigate history
w b e Word motions
0 $ Line start / end
f{char} / F{char} Find character forward / backward
; / , Repeat last find / reverse
r{char} Replace character under cursor
x Delete char under cursor
d c y + motion Delete / change / yank
dd cc yy Operate on whole line
[count]op[count]motion e.g. 3dd, d3w, 2x
p P Paste after / before cursor
"a"z Named registers
v Visual mode — then d / y / c
o / O Open new line below / above
gg / G Jump to first / last line in buffer
K Inspect symbol under cursor
. Repeat last change
u Undo
q{a-z} Record macro into register
@{a-z} Replay macro
/ Search history
n / N Next / previous search match

Text Objects

In operator-pending mode (d, c, y), press i or a followed by a delimiter:

Object Description
iw / aw Inner / around word
i" / a" Inner / around double quotes
i' / a' Inner / around single quotes
i( / a( Inner / around parentheses
i[ / a[ Inner / around brackets
i{ / a{ Inner / around braces

Ex Commands

Type : in normal mode to enter command mode.

Command Action
:w [file] Save session to file
:r file.py Load and run a Python file
:s/old/new/ Substitute in current line
:s/old/new/g Substitute all occurrences
:history Search command history
:clear Clear the screen
:q Quit

Platform

Vypl requires a Unix terminal. On Linux and macOS, it runs natively. On Windows, use WSL or Docker.

Running on Windows (Docker)

git clone https://github.com/HoraDomu/Vypl
cd Vypl
docker build -t vypl .
docker run -it vypl

Contributing

Contributions are welcome. Open an issue or pull request on GitHub. Vypl is licensed under GPL v3 — contributions must remain open source.

Special Thanks

bpython provided the original REPL foundation. Vypl builds on that core with a complete Vim modal editing layer, a minimal aesthetic, and Docker support.

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

vypl-1.0.0.tar.gz (86.7 kB view details)

Uploaded Source

Built Distribution

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

vypl-1.0.0-py3-none-any.whl (90.2 kB view details)

Uploaded Python 3

File details

Details for the file vypl-1.0.0.tar.gz.

File metadata

  • Download URL: vypl-1.0.0.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vypl-1.0.0.tar.gz
Algorithm Hash digest
SHA256 72b952c9072291661f13147538b0d9ae224e282f9ef3c1269c9286e39724ba1c
MD5 fdb8e55993bd3348b00f24cd4bab9813
BLAKE2b-256 0bcd3fb5719e26bea96b07c86e2bbd3edb699d1b4847f638407dfe1cdfa48a98

See more details on using hashes here.

Provenance

The following attestation bundles were made for vypl-1.0.0.tar.gz:

Publisher: publish.yaml on HoraDomu/Vypl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vypl-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: vypl-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 90.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vypl-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5fb17407c5a095b2e53e4ad1c95642a15f096033771e68dcf705cf23775bb5f2
MD5 5182f94405a8c55845f386331d2cddbc
BLAKE2b-256 9ec87bd1d9245224b875b3645c42ca61355248a18c6362982a347ab5967a9818

See more details on using hashes here.

Provenance

The following attestation bundles were made for vypl-1.0.0-py3-none-any.whl:

Publisher: publish.yaml on HoraDomu/Vypl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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