【问题标题】:Execute code inside visual studio code and replace the executed code with its output在 Visual Studio 代码中执行代码并将执行的代码替换为其输出
【发布时间】:2021-03-01 13:42:49
【问题描述】:

我通常使用一些 Python 代码来对代码的重复部分进行元编程。例如这些表达式的输出:

for i in range(10):
    print(f"var{i} = myfunc(arg{i})") 

能否让我自动分配一些变量:

var0 = myfunc(arg0)
var1 = myfunc(arg1)
var2 = myfunc(arg2)
var3 = myfunc(arg3)
var4 = myfunc(arg4)
var5 = myfunc(arg5)
var6 = myfunc(arg6)
var7 = myfunc(arg7)
var8 = myfunc(arg8)
var9 = myfunc(arg9)

理想情况下,预期的行为是所选代码将被替换到写入其输出的文件中。在 vim 中有一些options。我在 Visual Studio Code 中找不到类似的功能。下面是预期行为的原型:

【问题讨论】:

  • 你是否设法创建了这个扩展(查看动画)或者这是请求的行为
  • @rioV8 不,这是预期的行为,我一有空就会尝试进行扩展

标签: python visual-studio-code vim metaprogramming


【解决方案1】:

要生成这种类型的重复代码,您可以使用Regex Text Generator。

对于生成器表达式使用

(@var{{=j}} = myfunc\(arg{{=j}}\)){10}

它将在一行上生成所有代码,您必须将@ 替换为换行符,您可以使用多光标(选择所有出现次数 - Ctrl+Shift+L)

在预览中支持换行非常棘手。

您可以释放 10 行并在每行的开头放置一个光标(向下添加光标)并使用下一个生成器扩展

var{{=i}} = myfunc\(arg{{=i}}\)

【讨论】:

  • 谢谢,但是我不使用太多正则表达式,python 允许我做很多我无法想象如何使用正则表达式的技巧。我
  • @GM 您可以使用生成器脚本运行 Jupyter Notebook,执行脚本并将代码复制粘贴到源代码中
  • 是的,我通常这样做,但不是很方便,vim 扩展非常适合这项任务,如果有类似的东西用于 Visual Studio 代码,那就太好了
  • @GM 你可以使用 HyperSnips 扩展并用 JavaScript 编写脚本
  • 也许我可以像你一样自己开发一个扩展,我认为将输出重定向到剪贴板并粘贴它而不是突出显示的文本应该不会太难
猜你喜欢
  • 2016-10-12
  • 1970-01-01
  • 2023-01-10
  • 2022-11-02
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
相关资源
最近更新 更多