pyvim
Pure Python Vi Implementation
Decision gist · record as of 2026-08-14
Yes, if you want a lightweight, pure-Python Vi editor for terminal work and accept its limitations. No, if you need active maintenance, large-file performance, or the full feature set of modern Vim. The dormant status since 2022-05-16 means you should treat it as a stable but frozen tool—suitable for personal use or learning, but not for production environments requiring ongoing support.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a terminal environment; performance degrades noticeably on large files when syntax highlighting is enabled.
- Low install friction with pure Python dependencies and no C extensions.
- However, the project is dormant—last release was 2022-05-16, with last commit 2024-07-24.
License · maintenance · safety
BSD License (permissive) — BSD License permits commercial and private use with minimal restrictions, making it safe to adopt from a licensing standpoint.
last release 2022-05-16 (1551 days) · last repo commit 2024-07-24 · 2,545 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 185,671 downloads/mo, #10,005 on PyPI
Alternatives
Verify before relying
pip install pyvim
pyvim
Or set as default editor:
alias vi=pyvim
export EDITOR=pyvim- Current Python version compatibility—description mentions Python 2.6–3.4 and PyPy, but requires_python is unspecified.
- Whether Jedi integration for Python autocompletion is still functional or requires specific versions.
- Windows support quality and whether it has improved since the last release.
- Exact file size threshold at which performance degradation becomes noticeable.
What it is and what it does
pyvim is a Vi/Vim clone written entirely in Python, designed to demonstrate the capabilities of prompt-toolkit while providing a usable editor for terminal environments. It includes syntax highlighting via Pygments, horizontal and vertical window splits, tab pages, Vi key bindings, and several :set commands (incsearch, number, ignorecase, wildmenu, expandtab, hlsearch, ruler, paste, tabstop). For Python files, it offers autocompletion through Jedi and asynchronous code checking via Pyflakes.
The editor trades some of Vim's performance and feature completeness for simplicity and ease of extension in Python. It works across platforms where Python runs, though Windows support is acknowledged as less polished. The project is dormant but stable; it was last updated in 2022 and has not received active maintenance since, making it suitable only for users comfortable with a frozen feature set and willing to maintain their own patches if needed.
Use it for
- Quick terminal editing when you want Vi keybindings without installing the full Vim binary.
- Python development with integrated Pyflakes checking and Jedi autocompletion for Python files.
- Learning or prototyping an editor architecture, since the pure-Python implementation is readable and extensible.
- Embedded scripting scenarios where you need an editor that runs on the Python asyncio event loop.
- Cross-platform terminal editing on systems where Vim may not be easily available or desired.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you want a lightweight, pure-Python Vi editor for terminal work and accept its limitations.
No, if you need active maintenance, large-file performance, or the full feature set of modern Vim. The dormant status since 2022-05-16 means you should treat it as a stable but frozen tool—suitable for personal use or learning, but not for production environments requiring ongoing support.
Install
pyvim on PyPI
Before you install
Low install friction with pure Python dependencies and no C extensions. However, the project is dormant—last release was 2022-05-16, with last commit 2024-07-24. Maintenance is minimal; use only if you accept no active development.
Requires a terminal environment; performance degrades noticeably on large files when syntax highlighting is enabled.
License in practice
BSD License permits commercial and private use with minimal restrictions, making it safe to adopt from a licensing standpoint.
Quickstart
pip install pyvim
pyvim
Or set as default editor:
alias vi=pyvim
export EDITOR=pyvim
Verify before relying
- Current Python version compatibility—description mentions Python 2.6–3.4 and PyPy, but requires_python is unspecified.
- Whether Jedi integration for Python autocompletion is still functional or requires specific versions.
- Windows support quality and whether it has improved since the last release.
- Exact file size threshold at which performance degradation becomes noticeable.
Package facts
| License | BSD License permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesprompt-toolkitsixpyflakespygmentsdocopt |
| Maintenance | Dormant 1,551 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 185,671 / month, #10,005 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: pyvim-3.0.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “vim editor python”
- pyvimA Vi/Vim-like text editor implemented entirely in Python, providing…
- editorOpens your system's default text editor (or a specified one) to edit…
- python-editorProgrammatically open your system's $EDITOR from Python, capture…
Give your agent the search over MCP, or paste the wish link into any chat.
More Terminals packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Rich renders styled text, tables, progress bars, syntax highlighting, markdown, and tracebacks to the terminal with minimal code.
Colorama makes ANSI escape sequences for colored terminal text work on Windows by intercepting and converting them to win32 API calls, while passing through unchanged on other platforms.
Install it if you need colored terminal output to work on Windows or want to use ANSI-based libraries portably; skip it only if you target non-Windows platforms…
Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.
Install it if your application formats text for terminals and handles non-ASCII characters.
Run a subprocess in a pseudo terminal (pty) and interact with its input and output, enabling automation of interactive programs that require terminal features like password prompts or curses-style interfaces.
However, note that it is aging (last release 2020-12-28) and not actively maintained; it works well for its narrow, well-defined purpose but won't receive updates for…
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
See also prompt_toolkit · editor · ptpython · python-editor · streamlit-ace · Pygments · bpython · qtmonaco · jupyterlab-pygments · pynvim