VSCode 插入“不间断空格”而不是常规空格

Dav*_*nan 17 visual-studio-code

我想弄清楚为什么 VSCode 有时会决定随机插入“不间断空格”U+00A0而不是常规空格,以及如何阻止这种情况发生?

这是导致问题的不同类型的空格字符,如我之前的问题GitHub markdown not rendering 和 git detection changes when no changes 中所见

这在 Mac OS 和 Windows 上都发生在我身上,其他人也遇到过这个问题。虽然这个问题是关于 VSCode 的,但这也发生在在线的 GitHub 降价编辑器上。

我该如何解决这个问题?

重现步骤

.md在 VSCode 中编辑一个 markdown文件一段时间。

放入许多标题,例如# my heading## my sub-heading

如果你有降价扩展,你可以CTRL/CMD + SHIFT + POpen preview to the side.

您最终应该会注意到其中一个标题没有呈现,如果您在十六进制编辑器(如 HxD)中打开文件,您会注意到#字符后面有一个不间断空格而不是常规空格。

可能的原因

  • `Windows 上的反引号字符可以与键盘上的字母组合,例如a导致à. 也许使用反引号会导致空格字符变成不间断空格?然而,这不能解释 Mac OS 上的问题,因为反引号不能与其他字符组合。

小智 16

我在 Mac OS 上也有很多这样的东西,但事实证明,在使用修饰键键入后,我仍然option轻轻地按住键(或者可能shift在您的键盘上)space#

我已经安装了https://marketplace.visualstudio.com/items?itemName=viktorzetterstrom.non-break-space-highlighter&ssr=false#overview 来尽早发现我的错误。

  • 有一个名为 [Fix Irregular Whitespace](https://marketplace.visualstudio.com/items?itemName=karlito40.fix-irregular-whitespace) 的扩展,它会在保存时替换此特定字符(而不是突出显示它)。 (2认同)