You are on page 1of 3

VimPdb Beta by Yaron Budowski 1. 2. 3. 4. 5. 6.

About Features Installation Key Bindings Customizing VimPdb Known Issues

============================ 1. About --------------VimPdb allows you to debug Python programs like in a standard IDE (Step in/over, toggle breakpoint, etc). 2. Features ------------Highlighting of current debugged line. Opening the appropriate debugged file when needed. Highlighting of breakpoints. Save/Load current session breakpoints in files. IDE-Like debugging commands.

3. Installation ---------------Just drop VimPdb.py and VimPdb.vim into your plugin directory. Make sure the key bindings do not interfere with any existing ones. 4. Key Bindings ----------------F5 - Start/continue debug session of current file. Ctrl-F5 - Start debugging and do not pause at first line Ctrl-Shift-F5 - Start debugging with a given list of parameters. Shift-F5 - Stop the current debug session. Ctrl-Alt-Shift-F5 - Restart the current debug session. F2 - Toggle breakpoint. Ctrl-F2 - Toggle conditional breakpoint Shift-F2 - Toggle temporary breakpoint Ctrl-Shift-F2 - Clear all breakpoints in current file Ctrl-Alt-Shift-F2 - Clear all breakpoints in all files F11 - Print condition of conditional breakpoint under the cursor

- F7 - Step into - F8 - Step over - Ctrl-F8 - Continue running until reaching a return from function - F6 - Move cursor to currently debugged line. - Ctrl-F6 - Change current debugged line to where the cursor is currently placed . - F9 - Move up in stack frame.

. Known Issues ---------------.the current function name.stack_entry_format: the format used when printing the stack trace (using F12).the directory of the debugged file.default_breakpoints_filename: the filename used when auto_load_breakpoints_fil e/auto_saved_breakpoints_file are set.vim contains several options which allow the user to customize it: ..the arguments passed to the current function.the source code of the current line.Breakpoint lines aren't highlighted properly (through out the line) when there are Python keywords at the beginning of the line. .Ctrl-F4 .Eval the current WORD under the cursor (in the current debug context ) .<Leader>l . .Load saved breakpoints from a file. . * source_line .stack_entry_prefix: each stack trace entry line has this as its prefix. And of course.: a breakpoint line that starts (with no whitespace) with a "print" will be highlighted only after the "print". . .stack_entries_joiner: when there's more than one line of stack trace.Eval the current word under the cursor (in the current debug context) .Move down in stack frame.the filename of the debugged file. e.Print stack trace . Possible format keyword arguments: * dir .current_stack_entry_prefix: the current stack trace entry line is prefixed wit h this string.F10 . VimPdb will save all curren t session breakpoints into a file (default_breakpoints_filename) when exiting Vim. this str ing is used to join the lines. . .Exec a given statement (in the current debug context) .Save current debug session breakpoints to a file.auto_save_breakpoints_file: when this is set to 1. * line . 5. This is due to Vim's coloring precedence (keywords over any other type of match) . .F12 .PdbCurrentLine: the currently debugged line.F3 . * args . .F4 .PdbTemporaryBreakpoint: a temporary breakpoint.g.Eval a given expression (in the current debug context) .the current line number.the return value from the function. * filename . default key bindings can be modified. . * function .Ctrl-F3 . Customizing VimPdb ----------------------VimPdb. 6. * return_value .PdbBreakpoint: a "regular" breakpoint.<Leader>s . VimPdb will look for a save d breakpoints file (default_breakpoints_filename) in the current directory when loading a ne w debug session.auto_load_breakpoints_file: when this is set to 1.PdbConditionalBreakpoint: a conditional breakpoint. The following highlighting groups can be changed as well: .

Curent line highlighting works fine (due to use of :match instead of :syn match command. which precedes any other language highlighting).Instability of Vim has been reported (freezing/crashing).. This is probably due to the use of another Python thread within the Vim process. I've tried to make it so that the main Vim process doesn't interact directly wit h the Python thread (only via a common command queue). This improved stability. but not entirely. . But the problem is that no more than one type of highlig hting group can be used simultaneity with with a :match command. .