在 Mac 上,行尾自动设置为 Windows 行尾,我该如何更改?
On Mac, line endings are automatically being set to Windows line endings, how do I change that?
每次我 git commit
任何时候我都会收到警告,我的文件有 windows 行结尾,它们将被更改为非 Windows 行结尾。我不知道为什么一开始会发生这种情况,似乎我现在写入的每个文件都有 windows 行结尾。我如何将其改回使用 Unix 行尾?无论编辑器如何,这都会发生,它发生在 Vim 和 VS Code
中
VIM 和 VS Code 都可以识别文件是使用 macOS/Unix 行结尾(LF,例如仅 0a
)还是 Windows 文件结尾(CRLF,例如0d
后跟 0a
) 并保留它。您可以使用终端 hexdump
命令并查看您的行是否由 0d
0a
或仅 0a
.
分隔
最有可能的是,当文件首次创建时,它们是用 Windows 换行符序列保存的,而 VIM 和 VS Code 只是保留了该设置。
在VIM中,当你open/save文件时,如果文件当前正在使用WindowsCRLF
,你会看到一个底部状态消息中的小[dos]
。如果它已经是 unix 格式,你不会在那里看到 [dos]
。
在VIM中,如果是[dos]
文件,可以用:set fileformat=unix
转换成Unix行尾字符,然后保存转换后的文件。参见 Vim convert file from DOS to UNIX。
在 VS Code 中,您可以设置 eol
设置,但这只会影响新文件。同样,现有文件将保留文件最初使用的任何行尾设置。
但是,如果您打开文件并查看状态栏,您会在右侧看到 LF
或 CRLF
。您可以单击它来回切换。
有关 git 端如何处理的信息,请参阅 Configuring Git to handle line endings。我怀疑您可能想坚持现有的行为(更新到 Unix 行尾字符),但是您会在 GitHub 文档中清楚地看到您的选项。但是如果你真的想在你的文件中保留 CRLF,你可以相应地配置你的 repo。
根据您拥有的文件数量,您可能希望找到一个工具将 Windows/DOS 行尾 CRLF 序列转换为 Unix/macOS LF 字符。快速的 Whosebug 或网络搜索无疑会给你很多建议。
或者,听起来您的存储库已经更新为 Unix 风格的 LF 字符,因此您可能只想提取并使用它。
每次我 git commit
任何时候我都会收到警告,我的文件有 windows 行结尾,它们将被更改为非 Windows 行结尾。我不知道为什么一开始会发生这种情况,似乎我现在写入的每个文件都有 windows 行结尾。我如何将其改回使用 Unix 行尾?无论编辑器如何,这都会发生,它发生在 Vim 和 VS Code
VIM 和 VS Code 都可以识别文件是使用 macOS/Unix 行结尾(LF,例如仅 0a
)还是 Windows 文件结尾(CRLF,例如0d
后跟 0a
) 并保留它。您可以使用终端 hexdump
命令并查看您的行是否由 0d
0a
或仅 0a
.
最有可能的是,当文件首次创建时,它们是用 Windows 换行符序列保存的,而 VIM 和 VS Code 只是保留了该设置。
在VIM中,当你open/save文件时,如果文件当前正在使用Windows
CRLF
,你会看到一个底部状态消息中的小[dos]
。如果它已经是 unix 格式,你不会在那里看到[dos]
。在VIM中,如果是
[dos]
文件,可以用:set fileformat=unix
转换成Unix行尾字符,然后保存转换后的文件。参见 Vim convert file from DOS to UNIX。在 VS Code 中,您可以设置
eol
设置,但这只会影响新文件。同样,现有文件将保留文件最初使用的任何行尾设置。但是,如果您打开文件并查看状态栏,您会在右侧看到
LF
或CRLF
。您可以单击它来回切换。有关 git 端如何处理的信息,请参阅 Configuring Git to handle line endings。我怀疑您可能想坚持现有的行为(更新到 Unix 行尾字符),但是您会在 GitHub 文档中清楚地看到您的选项。但是如果你真的想在你的文件中保留 CRLF,你可以相应地配置你的 repo。
根据您拥有的文件数量,您可能希望找到一个工具将 Windows/DOS 行尾 CRLF 序列转换为 Unix/macOS LF 字符。快速的 Whosebug 或网络搜索无疑会给你很多建议。
或者,听起来您的存储库已经更新为 Unix 风格的 LF 字符,因此您可能只想提取并使用它。