sponsor Vim development Vim logo Vim Book Ad

Vdebug : Multi-language DBGP debugger client (PHP, Python, Perl, Ruby, etc.)

 script karma  Rating 276/80, Downloaded by 7870  Comments, bugs, improvements  Vim wiki

created by
Jon Cairns
script type
Vdebug is a new, fast, powerful debugger client for Vim. It's multi-language, and has been tested with PHP, Python, Ruby, NodeJS and Tcl. It interfaces with any debugger that faithfully uses the DBGP protocol, such as Xdebug for PHP. There are step-by-step instructions for setting up debugging with all of the aforementioned languages in the Vim help file that comes with Vdebug.

It builds on the experience gained through the legacy of the Xdebug Vim script originally created by Seung Woo Shin and extended by so many others, but it's a total rebuild to allow for a nicer interface and support of new features.

Plus, I find it a LOT faster. Why not try it for yourself?

It's written in Python, and has an object-oriented interface that is easy to extend and can even be used from the command-line. It even has unit tests covering some of the more critical parts of the code.

Main features

- Multi-language support
- Set and remove breakpoints (line, conditional, exception, return and call)
- Watch window showing all variables, and allowing you to switch context (to globals, etc)
- Watch window variables shown as a tree, and drill down into child elements
- Run "eval" commands on code snippets and see the output as a tree
- Run to cursor
- Support for debugging scripts on a remote machine
- The usual commands: run, step over, step in, step out, stop and detach
- IDE key support
- Complete key re-mapping possible
- Lots of configuration options
- Log to file or Vim window

How to use

There is very extensive help provided in the form of a Vim help file. This goes through absolutely everything, from installation to configuration, setting up debuggers for various languages, explanation of the interface, options, remote server debugging and more.

To get this help, type:

    :help Vdebug

after installing the plugin.
install details
- Vim compiled with Python 2.4+ support, tabs and signs
- A programming language that has a DBGP debugger, e.g. PHP, Python, Ruby, Perl, Tcl, NodeJS... (set-up included in the Vim help)

Clone or download a tarball of the plugin and move its content in your ~/.vim/ directory.

Your ~/.vim/plugins/ directory should now contain vdebug.vim and a directory called "python".

Using git and Pathogen
Clone https://github.com/joonty/vdebug.git in your ~/.vim/bundle directory

Using vundle
Add this to your ~/.vimrc file:

    Bundle 'joonty/vdebug.git'

Then, from the command line, run:

    vim +BundleInstall +qall

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
vdebug-1.5.1.tar.gz 1.5.1 2015-09-07 7.0 Jon Cairns Bug fixes:
* Fix buffers not being wiped out after ending a session (thanks @BlackIkeEagle, #226)

* Add :VdebugEval! command, which remembers the eval expression when stepping
through, as an alternative to :VdebugTrace (thanks @benjifisher, #193)
vdebug-1.5.0.tar.gz 1.5.0 2015-08-26 7.0 Jon Cairns === Vdebug 1.5.0 / 2015-08-28
Bug fixes:
* Fix for remote and local file paths with a windows/unix setup (thanks @brothert, #130)
* Sort path maps by remote path length (thanks @ragol and @adambiggs, #153, #201)
* Default \"stop\" behaviour (default <F6>) actually stops rather than detaches (issue #166)
* Various documentation fixes (issue #172, issue #223, thanks @loonies for #210)
* Add documentation to show that komodo-debug doesn't work with nodejs > 0.10 (#202, #223)
* Don't override previously defined breakpoint highlights (#208)

* Add support for Python 2.4 (thanks @mbarbon, #189)
* Add Vagrantfile and bootstrap for easier local development
* Add new VdebugTrace command for tracking individual variables and expressions (thanks @escher9, #178)
* Show ellipses for truncated arrays in watch window (#177)
* Bind to all available interfaces by default, instead of just localhost (#209, thanks @zolem)

vdebug-1.4.2.tar.gz 1.4.2 2014-05-15 7.0 Jon Cairns Bug fixes:
* Allow overriding of options dictionary after sourcing vdebug (issues #112, #113)
* Show local file path in stack window if using path mapping (issue #118)
* Change function names for stricter rules introduced in Vim v.7.4.260 (thanks @BlackEagle, #158 and #155)

* Various fixes
* Mention vim-nox package for Debian (thanks @henningda, #138)
* Add Python installation for Windows information (issue #135)

* Add completion to :Breakpoint command (thanks @tommcdo, #124)
* Add VdebugStart command (thanks @blueyed, #132)
* Sleep for 100ms in wait loop, don't consume as much CPU (thanks @blueyed, #133)
vdebug-1.4.2.tar.gz 1.4.2 2013-11-11 7.0 Jon Cairns Bug fixes:
* Add compatibility fix for Python debugging (due to incorrect "file:/" prefix) (issue #68, #102)
* Fix remote path slash replacement (issue #94)
* Fix rendering of unicode in watch window (issue #95)
* Stop errors being thrown on Vim 7.4 (issue #98, #96, #99)
* Fix error message on plugin reload, from function definition (thanks @glittershark, #106)

* Correct minor spelling and grammar errors in help doc (thanks @dkinzer, #108)
* Change the description for setting up the python debugger in the docs

* Add cucumber for integration tests, and add lots of features
vdebug-1.4.1.tar.gz 1.4.1 2013-06-09 7.0 Jon Cairns Bug fixes:
* Fix folds being forgotten after debugging (issue #56)
* Don't overwrite features array if it exists (issue #59)
* Mapping of single modes (thanks @xbot, #66)
* Stop empty buffers from being created (issue #70)
* Fix ElementTree deprecation warning (thanks @InFog, #89)
* Fix minheight error for windows (thanks @zhaocai, #73, also #84)
* Fix filename handling on windows (thanks @Chronial, #74)
* Use :mkexrc for restoring keymapping (thanks @Chronial and @qstrahl, #75)
* Fix window destruction (thanks @Chronial, #76)
* Inspect PHP constants with cursor eval (issue #80)
* Don't cut final character when inspecting variables at end of line (issue #85)

* Test suite requirements (thanks @michaeltwofish, #61)
* Add helptag instructions to README (issue #67)
* Add 'eval_visual' to documentation (issue #88)
vdebug-1.4.0.tar.gz 1.4.0 2013-03-06 7.0 Jon Cairns Features:
* Set debugger features with g:vdebug_features dictionary (issue #55)
* Allow use of '~' in log files (issue #53)

Bug fixes:
* Print error message if trying to start debugger with unsaved buffers (issue #57)
* Don't allow visual eval outside of debugging session (issue #52)
* Show updated key mappings in status window (issue #51)
* Fix problem with stuck breakpoints after debugging (issue #48, #43)
* Swap back to original tab after debugging session closes (issue #23)
vdebug-1.3.2.tar.gz 1.3.2 2013-01-28 7.0 Jon Cairns Features:
* Don't allow breakpoints to be set on empty lines (issue #27)
* Add :VdebugOpt command for easy setting and getting of options (issue #38)

Bug fixes:
* Small fixes for documentation (thanks: https://github.com/grota, #31)
* Parse continuous mode option as an integer (thanks: https://github.com/grota, #32)
* Stop Xdebug hanging when using the detach command (issue #33)
* Don't use recursive Vim mapping (issue #34)
* Track movement of line breaks with Vim signs (issue #35)
* Add "default" keyword to highlights, to allow custom colours (issue #36)
* Fix check for multibyte support (issue #37)
* Fix deprecation warning in Python 2.6, catching string exceptions (issue #39)
* Stop source code panel opening in incorrect position (issue #40)
vdebug-1.3.1.tar.gz 1.3.1 2012-12-31 7.0 Jon Cairns Bug fixes:
* Filepath problems with Windows version

* Packaged tests as an easy-to-run suite
* Set up on Travis CI
* Re-uploaded archive with gzip compression
vdebug-1.3.0.tar.gz 1.3.0 2012-12-19 7.0 Jon Cairns * Support and compatibility fixes for debugging Tcl, plus help file updates
* Non-multibyte Vim installations now use ASCII watch window marker characters as a fallback (thanks: https://github.com/satiani, #21)
* Watch window marker characters are fully customizable
* Satiani added multiple file path mappings, for remote debugging (thanks: https://github.com/satiani, #20)
* Vdebug re-maps previous key mappings after shutting down (issue #16)
* Added 'watch_window_style' option that allows for a compact or (default) expanded watch window (thanks: https://github.com/georgjaehnig, #13)
* Simple continuous mode added, where vdebug starts listening after a connection closes, to allow for debugging to start again immediately (issue #19)
* LOTS of bug fixes - see HISTORY file for more
vdebug-1.2.tar.gz 1.2 2012-10-05 7.0 Jon Cairns * Support for nodejs debugging using the komodo-debug package in NPM
* Keyboard interrupt while Vim is waiting for a connection (thanks: http://github.com/artnez, #6)
* Fixed overwriting dir function with badly named variable (thanks: http://github.com/csomme, #8)
* Function keys for debugger are only mapped when the session starts, and are unmapped when it's closed (issue #1)
* Removed the help tags file from the git repo (issue #10)
vdebug-1.1.tar.gz 1.1 2012-08-30 7.0 Jon Cairns Fix for Windows file paths; close and open tree nodes on watch window; evaluate variable under cursor with <F12>.
vdebug-1.0.tar.gz 1.0 2012-08-14 7.0 Jon Cairns Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github