A plugin for VIM that creates an Integrated Debugging Environment :) Currently works with PHP and Python
Python VimL
Latest commit fc708fd Aug 12, 2016 @jaredly committed on GitHub Merge pull request #33 from mcepl/vim-plugin-readme
Fix README with instructions on installation.
Failed to load latest commit information.
plugin Make this into a proper vim plugin. Aug 5, 2016
vim_debug Update dbgp.py Nov 19, 2013
.gitignore fixing "open" on linux and mac Sep 11, 2013
LICENSE Create LICENSE Aug 10, 2016
README.rst Merge pull request #33 from mcepl/vim-plugin-readme Aug 13, 2016
agyrtidae.png minor stuff Jul 14, 2010
bug.svg logo changes Jul 22, 2010
logo.png new logo Jul 12, 2010
logo.svg new logo Jul 12, 2010
setup.py Release 1.5.4 Sep 11, 2013


vim-debug-logo vim-debug

This plugin creates an integrated debugging environment in VIM.

It supports Python 2 and PHP.

Support Status

Seeking maintainer! I haven't used this actively in many years, and it's likely that alternatives have cropped up that are better. If you know one (or find one) please PR this readme and put a link [here] :D If you want to make this package better, open an issue asking to be a maintainer! Thanks




  • Integration with xdebug
  • Step (into/over/out)
  • Live stack view
  • Breakpoint set/remove
  • Watch expressions
  • Live scope view
  • Some improvements to make it easier to hack
    • It's now in a true python package
    • Modularized
    • Cleaned up, substantially rewritten for consistency


  • Conditional breakpoints


To start your debug session, use the following variants:

Usage: Dbg - (no auto start)
       Dbg . (autostart current file -- python)
       Dbg url (autostart a URL -- PHP)
       Dbg num (autostart a past url -- PHP)

Note: for PHP urls, vim-debug keeps track of the last 5 urls you debugged -- so you don't have to keep typing them in.

Debugger commands:

[usage:] dbg command [options]
- quit    :: exit the debugger
- run     :: continue execution until a breakpoint is reached or the program ends
         default shortcut: \r
- stop    :: exit the debugger
- over    :: step over next function call
         default shortcut: \o
- watch   :: execute watch functions
         default shortcut: \w
- up      :: go up the stack
         default shortcut: \u
- here    :: continue execution until the cursor (tmp breakpoint)
         default shortcut: \h
- down    :: go down the stack
         default shortcut: \d
- exit    :: exit the debugger
- eval    :: eval some code
- break   :: set a breakpoint
         default shortcut: \b
- into    :: step into next function call
         default shortcut: \i
- out     :: step out of current function call
         default shortcut: \t

To disable the default mappings, set the variable g:vim_debug_disable_mappings to a value different than 0 in the debugger.vim file.

For example:

let g:vim_debug_disable_mappings = 1


Execute the following commands:

sudo pip install dbgp

and then use your preferred vim plugin manage (pathogen, Vundle, vim-plug, et al.) and install this repository (jaredly/vim-debug) as appropriate for the given manager.

Take a look

Screenshot: [full size]


A screencast tutorial: https://www.youtube.com/watch?v=kairdgZCD1U

Some links of interest

Python package installer

Xdebug docs


Sam Ghods:(last activity 6/21/07)
Seung Woo Shin:(last activity 12/7/04)