首页 > 解决方案 > 如何将带有链接和格式的文本粘贴到像 Obsidian 这样的 VS Code 中?

问题描述

在 Chrome 中复制的文本

如果我从 Chrome 复制上述文本并将其粘贴到Obsidian中,我会得到

People who code: we want your input. [Take the Survey](https://stackoverflow.com/dev-survey/start?utm_source=so-owned&utm_medium=announcement-banner&utm_campaign=dev-survey-2021)

[](https://stackoverflow.com/questions/ask# "dismiss")

黑曜石截图

但是当我粘贴到 VS Code 或任何其他编辑器中时,我得到

People who code: we want your input. Take the Survey

VS 代码截图

视频参考:https ://dsc.cloud/J/67968285.mov

黑曜石是如何做到的?如何在 VS Code 中实现相同的目标?

标签: visual-studio-codevscode-settings

解决方案


— — — — — — — — — — — — — — — — — — — — — — — —</p>

简短的回答:

“ VSCode 编辑器不支持您描述的功能,而且 VSCode 几乎肯定永远不会支持任何接近它的功能。这是因为 VSCode 是什么,以及 VSCode 是做什么的,我将在下面详细解释。”




长答案:

所以 VS-Code 是一个基于文本的编辑器,它的目的是成为一个程序员可以编写代码的环境,因此,使用 VSCode 的人将执行一长串任务,包括但不限于:解释、编译、执行、调试、服务、共享、保存、写入、读取、记录和运行代码。现在这是添加将任意数据类型粘贴到 VSCode 中的功能的问题。除了您计划用来执行以下操作之一的文件中的标准文本之外,拥有任何类型的数据(这是非常短的列表)...

  • 编译,
  • 执行,
  • 调试,
  • 解释
  • 解析,
  • 服务,

...将导致抛出语法错误。

当您可以从外部源(例如网页)复制和粘贴文本格式时,一些不需要的格式数据很可能会粘贴到您编写的某些程序中,并且文本的格式数据将最终由于任何原因(他们的一百万个和 87 个原因会发生这种情况)而没有呈现,并且您最终会收到您看不到的语法错误,因此您现在不知道错误在哪里,尽管有错误消息说第 734 行第 24 列。在这种情况下,您将收到一条毫无意义的错误消息,您将不得不开始删除内容才能找到问题。这一切都是因为它的文本格式数据与您看不到的标准文本数据交织在一起。我希望我为你画了一张足够清晰的图。


他们是实现此功能的其他称为文字处理器的工具。我经常将 G-Docs 与 VSCode 结合起来。



够疯狂的,不是所有的都丢失了

VSCode 允许扩展来制作自定义编辑器。用于创建编辑器的扩展 API(可以通过单击链接查看)允许开发人员使用标准 HTML、CSS 和 JavaScript 构建 UI。这足以让某人为 VSCode 编写文字处理器,令人惊讶的是,还没有人这样做过。当有人确实创建了一个,我几乎可以肯定有人最终会支持您要求的功能。


作为记录,您描述的功能通常是文字处理器。VSCode 允许您安装诸如PASTE之类的扩展,但是它会复制和粘贴其他数据类型;当它被粘贴到编辑器中时,它不会像 HTML 那样呈现数据类型,它只是以文本格式编写它。换句话说,一开始你可能会认为你在复制页面,但是一旦你粘贴到 VSCode 上,你会感到失望。我想指出 Paste 使用GTK-3 Clipboards API,这意味着如果要在文字处理器(如 word 或 Google 文档)中实现 Paste,则这些文字处理器会将粘贴扩展名粘贴到文字处理器中的数据呈现。换句话说,不是扩展无法呈现数据(如上所述,可以使用粘贴扩展来完成),而是它的 VSCode 奇怪地将数据呈现为 HTML,但只接受它作为标准文本数据类型。




@W3Dojo


推荐阅读