A Python REPL with Vim Keybinds
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72b952c9072291661f13147538b0d9ae224e282f9ef3c1269c9286e39724ba1c
|
|
| MD5 |
fdb8e55993bd3348b00f24cd4bab9813
|
|
| BLAKE2b-256 |
0bcd3fb5719e26bea96b07c86e2bbd3edb699d1b4847f638407dfe1cdfa48a98
|
Provenance
The following attestation bundles were made for vypl-1.0.0.tar.gz:
Publisher:
publish.yaml on HoraDomu/Vypl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vypl-1.0.0.tar.gz -
Subject digest:
72b952c9072291661f13147538b0d9ae224e282f9ef3c1269c9286e39724ba1c - Sigstore transparency entry: 1922007742
- Sigstore integration time:
-
Permalink:
HoraDomu/Vypl@25ab78b7bae8ca22fb9f6003bd7335783f6a2679 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/HoraDomu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@25ab78b7bae8ca22fb9f6003bd7335783f6a2679 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fb17407c5a095b2e53e4ad1c95642a15f096033771e68dcf705cf23775bb5f2
|
|
| MD5 |
5182f94405a8c55845f386331d2cddbc
|
|
| BLAKE2b-256 |
9ec87bd1d9245224b875b3645c42ca61355248a18c6362982a347ab5967a9818
|
Provenance
The following attestation bundles were made for vypl-1.0.0-py3-none-any.whl:
Publisher:
publish.yaml on HoraDomu/Vypl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vypl-1.0.0-py3-none-any.whl -
Subject digest:
5fb17407c5a095b2e53e4ad1c95642a15f096033771e68dcf705cf23775bb5f2 - Sigstore transparency entry: 1922007970
- Sigstore integration time:
-
Permalink:
HoraDomu/Vypl@25ab78b7bae8ca22fb9f6003bd7335783f6a2679 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/HoraDomu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@25ab78b7bae8ca22fb9f6003bd7335783f6a2679 -
Trigger Event:
release
-
Statement type: