Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
minimal ruby-debug-ide implementation for Vim based on vim-addon-async supporting breakpoints, stepping, ..
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autoload work towards thread support, first open buf, then set markers
plugin work towards thread support, first open buf, then set markers
addon-info.json fix, related work


Implement ruby-debug-ide19 client for Vim

tested with ruby-1.9.2 (1.9.3 causes errors with ruby-debug19)

STATUS: This is working:
- stepping
- breakpoints
- var view, watching, evaling, sending commands to debug process manually
- restarting

  ! Requires client-server, thus X or patched Vim (eg nox patch, see vim-addon-async)

  # this installs ruby-debug19 and linecache19 as well:
  gem install ruby-debug-ide19

  The following steps are only necessary until my changes are accepted

    # get my patched version of ruby-debug-ide19
    # I'm trying to feed these changes upstream
    # thus the next two commands will not be needed in the future.

    git clone -b json

    # make sure the files of my version are found first:
    chmod +x bin/rdebug-ide

  2) start Vim *after* having set PATH and RUBYLIB as shown above.
  :e test.rb (your script to be debugged)
  You'll be asked for the script name to be debugged.
  Keep empty to connect to already running rdebug-ide process.
  You can start the server manually this way: rdebug-ide -J script.rb

  You can set breakpoints by F9 and add conditions in the RDEBUG_BREAK_POINTS_VIEW buffer
  Yes - there are some segfaults sometimes. Using latest mercurial dev version
  of Vim seems to fix most issues?
  3) hit F8 to start process
  6) step by F6 etc, see plugin/vim-addon-ruby-debug-ide.vim fun RDMappings


  - see addon-info.json
  - socat executable (probably nc/netcat works as well)

Using VAM:
  add the name "vim-addon-ruby-debug-ide" to the list of plugins to be

related work:
An implementation which works with require 'debug' only.
So why did it start this project? I want maintainable minimal and reusable code.
That's why this implementation is based on vim-addons-signs and vim-addon-async.
The code in this repo is about 500 LOC currently, not 2000.

It works nice and fast (but may crash vim sometimes), vim-ruby-debugger fails
pointing to the current breakpoint when using this mapping and hitting hit a
couple of times fast.
  noremap <F6>  :call ruby_debugger#load_debugger() <bar> call g:RubyDebugger.step()<CR>
The author told me it may happen occasionally - but did not for him. Well - I
want to work fast.

There are some more debugger script at which work with any
commandline related debugger or can be extended to work with those.
I haven't tried them. Example:

  - upload json protocol implementation for ruby-debug-ide19 to my github page (done)
    and submit merge request when done (requested)
  - check which features of implementation are missing
    thread support (continue which one when hitting F8?)
  - implemennt support for enabling / disabling breakpoints ?
    (because lines in the breakpoint view can be commented this is not urgent)
  - somewhen fix the segfault which sometimes occurs in Vim


invalid option: -J, you have the wrong ruby-debug-ide19 version which does not
have my json protocl patch. See INSTALLATION.

You can't set breakpoints? Make sure you pass -J (json protocol) to rdebug-ide
Something went wrong with that request. Please try again.