Windows下,VIM調試python的設置

作者:半瓶墨水 鏈接:http://www.2maomao.com/blog/win32-vim-debug-python/

vim很好用,但是python的set_trace太難用了,參考這篇文章,自己搞了一下。
現在Ctrl+M插入set_trace,Ctrl+U消除所有set_trace,Ctrl+D運行。覺得快捷鍵不爽的自己改改。
(M=>Mark, U=>Unmark, D=>Do)

總共四個步驟:

1. 安裝python新版,http://www.python.org,並把python安裝目錄加入到系統路徑

2. 安裝VIM的runscript插件:其作用是在vim腳本中執行python腳本

3. 下載python2.4版本的python24.dll, 放到c:\windows\system32目錄。(注意,如果你的vim用的不是這個版本,後面的步驟中vim會出錯,提示你沒有 pythonxx.dll,自己去找相應的版本下載),這個主要配合vim使用,也就是解釋下面那一步的腳本的,和你調試的時候所用的python版本沒 有關係。

4. 把下面這段加入到_vimrc文件裏面(我加在最後了):

python << EOF
import time
import vim
def SetBreakpoint():
    
nLine = int( vim.eval( 'line(".")'))
    
strLine = vim.current.line
    
i = 0
    
strWhite = ""
    
while strLine[i] == ' ' or strLine[i] == "\t":
        
i += 1
        
strWhite += strLine[i]
    
vim.current.buffer.append(
      
"%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" %
         {
'space':strWhite, 'mark': '#' * 30}, nLine - 1)
    
for strLine in vim.current.buffer:
        
if strLine == "import pdb":
            
break
        
else:
            
vim.current.buffer.append( 'import pdb', 0)
            
vim.command( 'normal j1')
            
break
vim.command( 'map <C-M> :py SetBreakpoint()<cr>')
 
def RemoveBreakpoints():
    
nCurrentLine = int( vim.eval( 'line(".")'))
    
nLines = []
    
nLine = 1
    
for strLine in vim.current.buffer:
        
if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()':
            
nLines.append( nLine)
        
nLine += 1
    
nLines.reverse()
    
for nLine in nLines:
        
vim.command( 'normal %dG' % nLine)
        
vim.command( 'normal dd')
        
if nLine < nCurrentLine:
            
nCurrentLine -= 1
    
vim.command( 'normal %dG' % nCurrentLine)
vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>')
vim.command( 'map <C-D> :!python %<cr>')
EOF

 

轉自:http://www.2maomao.com/blog/win32-vim-debug-python/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章