Vim w / Python:使“:make”带我到错误
如果我有一个Python文件,如:
def Bar():
raise NotImplementedError
def Foo():
Bar()
if __name__ == '__main__':
Foo()
然后我输入:make在vim中,它很好地构建了我:cwindow填充了相关区域以提升回溯。
但是,它将我的光标默认为调用的第一帧( 名称 ==' main ')。 我可以以某种方式更改默认行为,因此它会将我带到实际的异常调用?
- 更新 - 回答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'。
此代码将导航到最内层的异常。
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()
链接地址: http://www.djcxy.com/p/18911.html