如何像 Obsidian 一样将带有链接和格式的文本粘贴到 VS Code 中?

Adi*_*a J 6 visual-studio-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)

[](/sf/# "dismiss")
Run Code Online (Sandbox Code Playgroud)

黑曜石截图

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

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

Run Code Online (Sandbox Code Playgroud)

VS 代码截图

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

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

JΛY*_*ÐΞV 5

\xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2 \x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80 \x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94 \xe2\x80\x94

\n

简短的回答:

\n
\n

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

\n
\n
\n



\n

长答案:

\n

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

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

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

\n

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

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

够疯狂,但并没有失去一切

\n

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

\n
\n

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

\n
\n
\n
\n

@W3Dojo

\n


Eck*_*sDy 2

您复制的内容可以被视为“富文本”,但 VSCode 将剪贴板中的所有内容视为纯文本。
因此,这与在 Word 或 Google Docs 等其他程序中通过“Ctrl+Shift+V”粘贴相同。它将删除任何格式、链接、颜色、字体、粗体/斜体等。

Obsidian 在构建时就考虑到了格式 - 它严格遵循 Markdown 规范,因此它很自然地会尝试将任何富文本转换为 Markdown。

我不知道内置的 VSCode 设置允许您粘贴富文本,但我发现了 2 个扩展可以实现这一点:

粘贴特殊
Markdown 粘贴

  • 尝试了这两个扩展,但它们似乎在 macOS 中不起作用。 (2认同)