PyVim (GitHub: jonathanslenders/pyvim) by Jonathan Slenders is a pure Python Vim clone. You can try it out with pip:

pip install pyvim

I installed it on a Mac and it ran fine. Python has some libraries that make a Python Vim clone a worthwhile effort -- PyVim uses Pygments for syntax highlighting, and the author's Prompt Toolkit which is a readline replacement that also supports multi-line editing, completion, Emacs and vi key bindings, and Unicode support. The readme shows PyVim rendering Chinese and Japanese double width characters.


I noticed it supports most of the motions and editing operations that I could think of. It also supports several :set commands, split windows, tabs, and completion. If you're a Python programmer you might like to know that it comes with Jedi for completion and Pyflakes for static analysis.

One of the main limitations of PyVim is the fact that buffers are modeled as Python strings with an integer for the current cursor location. This means it won't scale to large files very well. Given how much work it is to implement a Vim-like text editor with a console-based GUI, however, I'm very impressed with the progress so far!

blog comments powered by Disqus