VIM PYTHON 调试

论坛 期权论坛 脚本     
匿名技术用户   2021-1-9 17:01   278   0

 
  
  1. python << EOF
  2. import time
  3. import vim
  4. def SetBreakpoint():
  5. nLine = int( vim.eval( 'line(".")'))
  6. strLine = vim.current.line
  7. i = 0
  8. strWhite = ""
  9. while strLine[i] == ' ' or strLine[i] == "\t":
  10. i += 1
  11. strWhite += strLine[i]
  12. vim.current.buffer.append(
  13. "%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" %
  14. {'space':strWhite, 'mark': '#' * 30}, nLine - 1)
  15. for strLine in vim.current.buffer:
  16. if strLine == "import pdb":
  17. break
  18. else:
  19. vim.current.buffer.append( 'import pdb', 0)
  20. vim.command( 'normal j1')
  21. break
  22. vim.command( 'map <C-M> :py SetBreakpoint()<cr>')
  23. def RemoveBreakpoints():
  24. nCurrentLine = int( vim.eval( 'line(".")'))
  25. nLines = []
  26. nLine = 1
  27. for strLine in vim.current.buffer:
  28. if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()':
  29. nLines.append( nLine)
  30. nLine += 1
  31. nLines.reverse()
  32. for nLine in nLines:
  33. vim.command( 'normal %dG' % nLine)
  34. vim.command( 'normal dd')
  35. if nLine < nCurrentLine:
  36. nCurrentLine -= 1
  37. vim.command( 'normal %dG' % nCurrentLine)
  38. vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>')
  39. vim.command( 'map <C-D> :!python %<cr>')
  40. EOF










本文转自 ibelieveme 51CTO博客,原文链接:http://blog.51cto.com/skyson/493955,如需转载请自行联系原作者
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP