skip to navigation
skip to content

vimpdb 0.2

VIM PDB support

Latest Version: 0.4.5

CAUTION: work-in-progress

PDB support for VIM.

Prerequisites: - a python-enabled VIM (test: “:python import os” in VIM) - VIM servermode compiled in (on OS X this requires MacVIM)


Open a terminal and start a VIM with servername ‘PDB’:

$ mvim --servername PDB

Then, from the program to be debugged use it like pdb,

>>> import vimpdb; vimpdb . set_trace()

(the blanks above are needed due to some dumb SVN precommit hook)

When this line is hit, PDB starts and your PDB-VIM should load the source code and highlight the current LOC. Additionally you should get a “PDB” menu, where you can set/toggle breakpoints etc.

The vimpdb code tries to launch MacVIM, which it will try to locate using the GVIM environment variable:

$ export GVIM=/User/seletz/bin/mvim

Note, the mvim script is a bash script included in the MacVIM package which tries to locate the MacVIM executable. If you have MacVIM in /Applications, then this should “Just Work”. For convenience, the above variable should be put in your ~/.bash_profile or similar.

How does (should) that work?

vimpdb is a subclass of pdb.Pdb, which hijacks the command loop and listens for UDP packets on port 6666 (blocking). To inform the VIM process what’s happening, it uses VIM’s remote commands.

On the VIM side there’s basically just a VIM script which does the higlight, set up the menu, and defines a function to send UDP messages.

That’s all.


  • sometimes the vim script is not sourced correctly
  • there are no easy keyboard commands for using the debugger, one needs to use the menu.
  • no security
  • network settings hard coded
File Type Py Version Uploaded on Size
vimpdb-0.2-py2.4.egg (md5) Python Egg 2.4 2008-06-17 13KB
vimpdb-0.2.tar.gz (md5) Source 2008-06-17 6KB