问题描述
Vim 进行 PHP 代码开发,需要调试了怎么办?除了传统的 var_dump() 方式,还可以通过 XDebug 来调试,那么如何配置Vim使其支持 XDebug 呢?
准备工作
- PHP 服务器以及已经发布的代码
- PHP 服务器已经开启了 XDebug
- Vim 是采用 VundleVim 进行插件管理的
解题过程
~/.vimrc 添加 vdebug 插件。
Plugin 'joonty/vdebug'
退回到命令行,执行:
vim +PluginInstall +qall
再配置 ~/.vimrc,追加如下配置。
let g:vdebug_options = {}
let g:vdebug_options['path_maps'] = {"/var/www/html": "/Users/xiaoqiang/workspace/wangxiaoqiangcn/wordpress"}
let g:vdebug_options['server'] = "localhost”
let g:vdebug_options['port'] = 9001
其中 path_maps 是服务端代码目录到本地代码目录的映射。
开始 Debug 吧,下边的快捷键会有所帮助。
<F5>: start/run (to next breakpoint/end of script)
<F2>: step over
<F3>: step into
<F4>: step out
<F6>: stop debugging
<F7>: detach script from debugger
<F9>: run to cursor
<F10>: toggle line breakpoint
<F11>: show context variables (e.g. after "eval")
<F12>: evaluate variable under cursor
:Breakpoint <type> <args>: set a breakpoint of any type (see :help VdebugBreakpoints)
:VdebugEval <code>: evaluate some code and display the result
<Leader>e: evaluate the expression under visual highlight and display the result
To stop debugging, press <F6>. Press it again to close the debugger interface.
解释原理
在 Vim 使用了 Vdebug 插件,来作为 Xdebug 的客户端。
更多内容
Debugging PHP with Vim + Xdebug + Vdebug
http://www.sromero.org/wiki/linux/servicios/php/vim_debug_basics
Debug Drupal PHP Vim VDebug
http://www.mediacurrent.com/blog/debug-drupal-php-vim-vdebug