pyvim is an implementation of a subset of Vim’s editor behaviour in a terminal interface. It aims to provide a recognisable Vim-style editing experience while remaining straightforward to experiment with and extend. Its interface is built around prompt_toolkit rather than a traditional curses-based screen editor.
The project is particularly interesting as a demonstration of the editing capabilities of prompt_toolkit. It brings together file buffers, separate editing windows and editor commands in a compact environment. Developers working with Python can also use integration with tools that provide completion and code checks.
It is not a drop-in replacement for Vim. The developer documents limitations involving large files, window-specific cursor behaviour, and features such as folding and macros. Users handling complex editing sessions or especially large files should take these constraints into account.
This is free and open source software.
Key Features
- Vim-style normal and insert operations through prompt_toolkit key bindings.
- Horizontal and vertical split windows plus tab pages.
- Syntax highlighting through Pygments lexers.
- Configurable search, indentation, numbering, highlights and other editor options.
- Python completions through Jedi and asynchronous checking through Pyflakes.
- Runtime colour scheme switching.
- Optional personal configuration in a .pyvimrc file.
- Interactive command operations including vsplit, tabnew and buffer management.
Website: github.com/prompt-toolkit/pyvim
Support:
Developer: Jonathan Slenders
License: BSD 3-Clause ‘New’ or ‘Revised’ License

pyvim is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Vim-like Text Editors | |
|---|---|
| Neovim | Vim-fork focused on extensibility and usability |
| Helix | Kakoune / Neovim inspired editor. |
| Lapce | Modern editor in Rust which uses native GUI and GPU rendering |
| NvChad | Neovim config aiming to provide a base configuration |
| LunarVim | IDE layer for Neovim |
| Kakoune | Implements Vi’s "keystrokes as a text editing language" model |
| Vis | Combining modal editing with structural regular expressions |
| vile | Text editor that combines aspects of the Emacs and vi editors |
| pyvim | Implementation of Vim in Python |
| gVim | Vim with a built-in GUI |
| amp | Vim-like editor written in Rust |
| Vy | Vim-like in Python made from scratch |
| moe | Command-line editor inspired by Vim |
| wig | Modal, Vim-like text editor |
| sled | Simple text editor with a terminal UI |
| red | Modern modal text editor written in Rust |
| ad | Adaptable text editor |
| hat | Hackable modal text editor |
| HAKO | Lightweight terminal-based modal text environment |
| xvi | Portable multi-file text editor |
| aretext | Minimalist text editor with vim-compatible key bindings |
| Levee | Also known as Captain Video |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.