VSCode插入“非断行空格”而不是常规空格。

13 浏览
0 Comments

VSCode插入“非断行空格”而不是常规空格。

我正在试图弄清楚为什么VSCode有时候会随机插入“不间断空格”(非常规空格)U+00A0,而不是普通空格,并且如何阻止这种情况发生?

这是一种不同类型的空格字符,会引起问题,正如我之前的问题所示GitHub markdown not rendering and git detecting changes when no changes

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

我该如何解决这个问题?

重现步骤

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

放入很多标题,比如#我的标题##我的子标题

如果你安装了markdown扩展,你可以使用CTRL/CMD + SHIFT + P,然后选择Open preview to the side

你应该最终注意到一个标题没有渲染,如果你在像HxD这样的十六进制编辑器中打开文件,你会注意到在#字符之后有一个非间断空格,而不是普通空格。

可能的原因

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

VSCode插入“非断行空格”而不是常规空格的原因是由于从Microsoft Skype或Microsoft OneNote中复制/粘贴代码时,这两个程序将常规空格转换为特殊的Unicode空格。

顺便说一下,自从1.63版本以来,Visual Studio Code会自动突出显示这些特殊空格。

要解决这个问题,可以使用以下方法之一:

方法一:手动替换特殊空格

1. 复制代码并粘贴到VSCode中。

2. 定位到特殊空格的位置。

3. 使用查找和替换功能(快捷键:Ctrl + H)。

4. 在“查找”框中输入特殊空格的Unicode值(例如,U+00A0)。

5. 在“替换”框中输入普通空格的Unicode值(例如,U+0020)。

6. 点击“全部替换”按钮以替换所有特殊空格。

方法二:禁用自动转换特殊空格

1. 打开VSCode。

2. 点击左下角的“设置”按钮(快捷键:Ctrl +,)。

3. 在设置页面中,搜索“non-breaking spaces”。

4. 在“Editor: Non Breaking Spaces”选项下,将其设置为false。

5. 关闭设置页面。

现在,当你粘贴代码时,VSCode将不会自动转换特殊空格。

使用上述方法之一,你可以解决在VSCode中插入非断行空格而不是常规空格的问题。

0
0 Comments

问题的原因是VSCode在插入空格时会默认插入非断空格(non-breaking space),而不是普通的空格。这会导致在复制和粘贴命令时出现问题,例如在Windows系统上执行"mv foo bar"命令会返回"command not found"错误。

解决这个问题的方法是禁用VSCode插入非断空格的设置。以下是具体的解决方法:

1. 打开VSCode编辑器。

2. 在顶部菜单栏中选择"File"(文件)选项。

3. 在下拉菜单中选择"Preferences"(首选项)。

4. 在下拉菜单中选择"Settings"(设置)。

5. 在设置页面的搜索栏中输入"non-breaking space"。

6. 在搜索结果中找到"Editor: Insert Spaces"(编辑器:插入空格)选项。

7. 将该选项的值设置为"off"(关闭)。

8. 关闭设置页面,重新启动VSCode编辑器。

通过按照以上步骤禁用插入非断空格的设置,可以解决在复制和粘贴命令时出现非断空格的问题。这样可以确保正确执行命令并避免出现"command not found"等错误。

需要注意的是,该问题不仅限于Mac系统,在Windows和Linux系统中也会出现。对于Markdown文档等其他类型的文件,也可能会遇到类似的问题。禁用插入非断空格的设置可以解决这些问题。

本文介绍了VSCode插入非断空格而不是普通空格导致命令复制和粘贴错误的问题,并提供了禁用插入非断空格的设置的解决方法。无论是在Windows、Mac还是Linux系统中,通过禁用该设置可以确保命令的正确执行。

0
0 Comments

问题出现的原因是在输入空格时,用户可能意外按下了其他键(如option键或shift键),导致插入了非断行空格(non-breaking spaces)而不是正常的空格。

解决方法有以下几种:

1. 安装名为"non-breaking space highlighter"的VSCode插件,它可以帮助用户及时发现并纠正这类错误。

2. 安装名为"Fix Irregular Whitespace"的VSCode插件,它可以在保存文件时自动替换这些特殊空格字符,而不是仅仅将其标记出来。

3. 根据用户反馈,在输入"#"字符后按下空格键时,可能会意外按下"option"键,导致插入了非断行空格。这个问题在GitHub的一个issue中有讨论:github.com/microsoft/vscode/issues/13239

4. 如果用户使用的是GB键盘,那么在输入"#"字符后按下空格键时,可能会意外按下"option"键。因此,用户应该注意避免同时按下这两个键。

5. 在VSCode中,可以通过激活"View -> Appearance -> Highlight Whitespace"选项来显示非断行空格,这样用户可以直观地看到它们的位置。

以上是解决VSCode插入非断行空格而不是正常空格的几种方法,用户可以根据自己的需要选择合适的解决方案。

0