为什么我无法在 Windows 10 子系统上编辑 ubuntu 文件?

为什么我无法在 Windows 10 子系统上编辑 ubuntu 文件?

因此,我可以在 Windows 10 上将 Ubuntu 安装为子系统,并且所有文件的位置都在那里。每个人都说“你可以不是从 Windows GUI 编辑文件”。

我很好奇到底为什么?

是因为 Windows 使用 NTFS 吗?

这些有什么:?

换行符 Windows 使用 CRLF(\r\n,0D 0A)行结束,而 Unix 只使用 LF(\n,0A)。

字符编码 大多数现代(即自 2004 年左右以来)类 Unix 系统均将 UTF-8 作为默认字符编码。

然而,Windows 缺乏对 UTF-8 的原生支持。它内部使用 UTF-16,并假定基于字符的字符串位于旧代码页中。幸运的是,记事本能够读取 UTF-8 文件;不幸的是,“ANSI”编码仍然是默认设置。

有问题的特殊字符 U+001A 替代 Windows(很少)使用 Ctrl+Z 作为文件结束符。例如,如果您在命令提示符下键入文件,它将在第一个 1A 字节处被截断。

在 Unix 上,Ctrl+Z 没什么特别的。

U+FEFF ZERO WITH NO-BREAK SPACE(字节顺序标记)在 Windows 上,UTF-8 文件通常以“字节顺序标记”EF BB BF 开头,以将其与 ANSI 文件区分开来。

在 Linux 上,不建议使用 BOM,因为它会破坏 shell 脚本中的 shebang 行等内容。另外,当 UTF-8 是默认编码时,使用 UTF-8 签名毫无意义。

来源:https://superuser.com/a/294280/517467

有哪些选项?我可以用某些特定的编辑器编辑文件吗?比如 Visual Studio Code?

答案1

以上所有问题都是你提到的。CR/LF 不一致等问题以及其他不兼容性会导致错误,这些错误通常很难诊断

许多编辑器确实支持检测正确类型的换行符,并且您提到的 Visual Studio Code 在状态栏上也有一个开关可以在两者之间切换

没有人会真正说“你不能从 Windows GUI 编辑文件”,它总是不建议就好像你不知道自己在做什么,你可能会造成比你应得的更多的麻烦

相关内容