如果我有一个python文件,如:
def Bar():
raise NotImplementedError
def Foo():
Bar()
if __name__ == '__main__':
Foo()
我输入:在vim中制作,它很好地构建了一个:cwindow充满相关区域以向上移动追溯。
但是,它会将我的光标默认为通话的第一帧(在名称 =='主要'中)。我可以以某种方式更改默认行为,因此我需要实际调用异常吗?
- 更新 - 回答Ingo的问题:
:makeprg / errorformat设置为gentoo安装的默认值。那就是:
makeprg=python %
errorformat=%A File "%f"\, line %l%.%#,%Z%[%^ ]%\@=%m
quickfix窗口中的堆栈跟踪如下所示:
main.py
1 || Traceback (most recent call last):
2 main.py|8|
3 || Foo()
4 main.py|5|
5 || Bar()
6 main.py|2|
7 || raise NotImplementedError
8 || NotImplementedError
我被宠坏了,我喜欢它,如果我开始'加注'(第7行)并且可以:cp'向后'根据需要。
答案 0 :(得分:3)
此代码将导航到最内层的异常。
function! s:InnermostExceptionInQFList()
let s:num = 0
for item in getqflist()
if item.lnum > 0
let s:num += 1
endif
endfor
if s:num > 0
try
silent execute(s:num . 'cnext')
catch /E553:/
" E553: No more elements
endtry
endif
silent execute('wincmd w')
endfunction
autocmd! QuickfixCmdPost * call s:InnermostExceptionInQFList()