在Visual Studio代码中调试时将变量内容复制到剪贴板

Mik*_*eel 14 visual-studio-code

我在Visual Studio Code中调试,我有一个JSON对象,我想将其作为文本复制到剪贴板.

这可能在Visual Studio Code中吗?

Emi*_*nge 13

我有一个简单的解决方法来复制您想要的任何内容:

  1. 在调试控制台中写入JSON.stringify(yourJsonObject)
  2. 复制字符串,"字符串周围不带双引号
  3. 打开浏览器,例如Chrome,打开检查工具,进入控制台并写入:

    copy(JSON.parse("PASTE_THE_STRING_HERE"));

  4. 该对象现在已复制到您的键盘上!


Ben*_*Ben 12

我发现有两种方法可以做到这一点,这两种方式都有点笨拙(在我看来).

使用console.log

我认为这可以输出的字符串大小有限制,但它满足我的要求.

  1. 在调试控制台中,写 console.log(JSON.stringify(yourJsonObject))
  2. 从调试控制台复制结果输出.对于长字符串来说这可能有点单调乏味,但鼠标和键盘的组合(ctrl-shift-end)对我来说还不错.

使用手表(限量10'000个字符)

此方法仅适用于生成的json字符串的有限大小(看起来像10'000个字符).

  1. 在您的变量在范围内的合理位置设置断点并启动您的应用.
  2. 转到调试视图,为临时变量添加监视,例如 tmpJson
  3. 得到你的断点.
  4. 在调试控制台中,写 var tmpJson = JSON.stringify(yourJsonObject)
  5. 现在,这将tmpJson使用json对象的字符串表示填充监视变量
  6. 在调试视图中,右键单击监视变量,单击"复制".

如果字符串太长,则会使用如下消息将其剪切掉: ...,"typeName":"rouParallel","toolAssembly":{"id":"ASKA800201","description":"CeonoglodaloD50R6z5","c... (length: 80365)"

但它适用于较小的物体.也许这有助于一些人.使用vscode正确内置它会很棒.


小智 11

关于此有一个未解决的问题:https : //github.com/microsoft/vscode-java-debug/issues/624

解决方法:

  1. 转到变量面板并右键单击以显示变量的上下文菜单
  2. 选择设置值
  3. Ctrl+C

(在 Java 上测试,而不是 JavaScript)

  • 设置值解决方法不适用于 Python (3认同)
  • 如果数组超过 14 个字符,复制值 (python) 对我不起作用。除了第一个 14 之外的所有内容都被截断,我只看到......在最后。你能得到更多吗? (2认同)

Haw*_*ker 10

注意:此解决方案似乎适用于较长的值,但不适用于非常长的值。这个答案建议 10,000 个字符的限制,并使用JSON.stringify(myvar)而不只是str(). 关于字符限制,另请参阅下面的评论

在 python 调试器中测试

  • 将变量添加到 Watch,但转换为字符串

    str(myvar)

  • 右键单击手表的值,然后选择Copy Value

  • 现在您应该获得完整的值(但不是很长的值。请参阅上面的注释)。

(变量名称模糊):

在此输入图像描述

  • 不适用于很长的值,即 tf.Tensors (2认同)
  • 同样的问题在这里。长 API 值无法应对所有...复制值缺少大量数据。 (2认同)

Lov*_*ell 5

如果您正在调试 Python

在 DEBUG CONSOLE类型中,例如:

import json
from pprint import pprint as pp
pp(json.dumps(outDetailsDict))

OUTPUT IS LIKE
{"": {"stn_ix": 43, "stn_name": "Historic Folsom Station (WB)", "name": "", },
...
Run Code Online (Sandbox Code Playgroud)