VIM PYTHON 调试

发布时间:2019-07-30 10:29:21编辑:auto阅读(1538)

     

    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.    
    24. def RemoveBreakpoints():  
    25.     nCurrentLine = int( vim.eval( 'line(".")'))  
    26.     nLines = []  
    27.     nLine = 1 
    28.     for strLine in vim.current.buffer:  
    29.         if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()':  
    30.             nLines.append( nLine)  
    31.         nLine += 1 
    32.     nLines.reverse()  
    33.     for nLine in nLines:  
    34.         vim.command( 'normal %dG' % nLine)  
    35.         vim.command( 'normal dd')  
    36.         if nLine < nCurrentLine:  
    37.             nCurrentLine -= 1 
    38.     vim.command( 'normal %dG' % nCurrentLine)  
    39. vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>')  
    40. vim.command( 'map <C-D> :!python %<cr>')  
    41. EOF  
    42.  

     

关键字