在 Vim 中执行 python 脚本行

我刚刚开始使用 Vim 作为我的主要 IDE,在之前的 IDE 中我经常使用的功能之一是“在 python 中执行选择”。

我了解到在 python 中执行代码有两种方法,一种是, :python3 {expression}另一种是:w python3

我想要做的是在 vim 中执行脚本的选定行,而不刷新(关闭)python 控制台。

看起来:python3 {expression}没有关闭python控制台,所以在我使用之后:python3 a=3,命令:python3 print(a)返回了正确的值3。但是,我认为这个功能没有“选择功能”。虽然:help python显示了[range]参数,但我不明白如何使用它。

另一方面,第二个函数具有选择功能(例如:1,3w !python3),但每次我使用该函数时,python 控制台似乎都会刷新(=关闭)。

我想向 .vimrc 添加简单的函数就可以达到我的目的,但找不到。任何帮助将非常感激!


慕妹3146593
浏览 40回答 2
2回答

潇湘沐

找到答案了!我通过制作简单的自定义命令解决了这个问题。python3 << EOLimport vimdef ExecuteSelectedLine(l1, l2):&nbsp; &nbsp; for i in range(l1-1,l2):&nbsp; &nbsp; &nbsp; &nbsp; print(">>" + vim.current.buffer[i])&nbsp; &nbsp; &nbsp; &nbsp; exec(vim.current.buffer[i],globals())EOLcommand! -range Eval <line1>,<line2> python3 ExecuteSelectedLine(<line1>, <line2>)如何使用在 python 中仅运行脚本的第一行到第三行:1,3Eval运行python中的当前行:Eval在 python 中运行可视化选择的脚本部分:'<,'>Eval范围选择与 -range 选项一起使用,并使用 python 的“exec”函数和 globals() 选项,持久性保持不变(无需刷新)。我想我的编码风格,在控制台中尝试不同的代码片段并最终确定主脚本,是一种奇怪的编码方式,因为我在社区中找不到类似的尝试。

繁花如伊

我不明白这个问题。命令:1,3w&nbsp;!python3应该可以解决这个问题,你说的“每次我使用该函数时 python 控制台都会刷新”到底是什么意思?如果你的意思是,它等待按下回车键才能返回 vim,这是很自然的。您还可以使用::'<,'>w&nbsp;!python3以前使用可视化模式来选择某些代码块。您想在新的终端窗口中执行代码吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python