【问题标题】:VSCode inserting "non-breaking spaces" instead of regular spacesVSCode插入“不间断空格”而不是常规空格
【发布时间】:2021-09-23 08:40:14
【问题描述】:

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

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

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

我该如何解决这个问题?

复制步骤

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

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

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

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

可能的原因

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

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    我在 Mac OS 上也有很多这样的情况,但事实证明,在使用修饰键后键入 space 时,我仍然稍微按住 option 键(或者可能是键盘上的 shift)输入#

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

    【讨论】:

    • 谢谢我试试扩展
    • 有一个名为 Fix Irregular Whitespace 的扩展程序在保存时替换了这个特定字符(而不是突出显示它)。
    • 当您说“选项”时,您的意思是“转移”吗?我通常按​​ shift-3 键入 #。这个 GitHub 问题说 shift-space 给你一个 U+00A0:github.com/microsoft/vscode/issues/13239
    • 我的意思是 option 但应该提到我使用的是 GB 键盘。
    【解决方案2】:

    我花了很多时间试图弄清楚为什么我从 VScode 复制和粘贴的“mv foo bar”命令返回 command not found。原来 mv 和 foo 之间的空间是一个不间断的空间,我只是通过将它粘贴到一个 unicode 文本转换器来确定它。我真的很想知道为什么会这样,如果它是我可以禁用的设置。我使用的是 Windows 10,所以我认为这不仅仅是 Mac 问题。

    【讨论】:

    • 我在 Windows 上也遇到过这个问题,所以绝对不仅仅是 mac 问题(虽然我有一段时间没有注意到)。
    • 我可以在 Linux 上确认同样的问题
    • 不,它似乎是零宽度空间 U+200b,@Dries 提到的扩展名没有检测到它
    • 真是一场噩梦!我从很久以前就受过这种痛苦。你知道谁添加了非中断空间吗?是 VScode,也许是扩展?我主要通过 Markdown 文档体验过这一点。
    【解决方案3】:

    我也遇到过这种情况,但我确定我无意中仅使用空格键插入了不间断空格。我发现hexdump plugin 对诊断问题很有用。我仍然不知道如何避免它。

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2011-07-06
      • 2019-01-29
      相关资源
      最近更新 更多