如何从Python的回溯信息中发送行号到vim?

12

我可以解析Python回溯中文件的路径,然后使用命令行上的-p将这些路径发送到Vim,以便每个文件都在一个选项卡中打开。因此,我最终会得到一个命令,例如:

vim -p main.py module.py another.py

这会在一个新标签页中打开每个文件,但我想让它们在一个新的标签页以正确的行号打开。因此,我尝试了一些变体,例如:

vim -p main.py +10 module.py +20 another.py +30

但我似乎无法让 Vim 尊重我在命令行中发送的行号 - 它总是只采用最后一行号并将其应用于第一个选项卡。所以,这个示例把我留在了main.py的第30行。尝试不同的变化,比如:

vim -p main.py+10 module.py+20 another.py+30
vim -p main.py\ +10 "module.py +20" another.py@30

所有的文件名都变糟糕了。

欢迎提供Python、Bash命令行、Vim脚本或Vim-Python等级别的答案,也可以采用完全不同的方法。

(跟踪信息可能来自任何地方,并不一定由我控制。今天让我开始的那个是从服务器日志中的一组行中获取的。)


5
这能帮到你吗?如果是的话,这个问题就是重复的:Vim:在不同的行上打开多个文件 - ire_and_curses
最终,我为原始问题(将traceback解析为vim)创建了一个Python脚本,其中包含了建议的解决方案在这里:https://github.com/jalanb/dotjab/blob/master/src/python/vim_traceback.py - jalanb
Vi StackExchange 上类似的问题(我的)链接为:https://vi.stackexchange.com/questions/5110/quickfix-support-for-python-tracebacks - Nathaniel M. Beaver
1个回答

2

试用 vim 插件:file_line

vim -p new main.py:10 module.py:20 another.py:30

已知问题:第一个文件名不应该有行号。(我正在努力弄清楚为什么...)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接