Implements a client and server interface useful for controlling a Vim server programatically.
Project description
Vimrunner
Module that implements a client and server interface useful for controlling a Vim server programatically. This module could be used for unit testing or integration testing for a Vim plugin written in Python. Or you can use it to interactively control a Vim editor by python code, for example, in an Ipython session.
How it all started
I created a class that used the vim python module to emulate a vim buffer and that would act like a list, so you could read and write lines and manipulate text using python.
However, I stumbled across Vimrunner which is a Ruby gem used to “spawn a Vim instance and control it programatically.”
So, this python module is heavily inspired by the project mentioned above.
Installation
pip install vimrunner
Alternatively, you can just drop vimrunner.py file into your project - it is self-contained.
Testing
You can run unit tests using the command:
python setup.py test
Usage
import vimrunner
# initialize vim server
vim = vimrunner.Server()
# start GVIM as server and get a client connected to it
client = vim.start_gvim()
client.edit('any_file')
client.source('path/to/vim/plugin')
# start Vim editor in a terminal; it should work for Debian, Ubuntu, etc.
# that have a desktop installed
client = vim.start_in_other_terminal()
Documentation is available at http://andri-ch.readthedocs.org/en/latest/
For any suggestions regarding the module and its documentation, please submit an issue using GitHub issue tracker