Met*_*uru 233 line-endings visual-studio
Visual Studio偶尔会告诉我:
以下文件中的行结尾不一致.你想要标准化行结尾吗?
然后它给我一个不同标准或类似的下拉菜单,如Windows,Mac,Unix和几个Unicode.
这意味着什么,如果我点击会发生Yes什么?
Ken*_*ite 205
这通常意味着你的行以回车符/换行符对之外的其他内容结尾.当您从网页复制并粘贴到代码编辑器中时,通常会发生这种情况.
标准化行结尾只是确保所有行结束字符都是一致的.它阻止一行结束\r\n,另一行以\ror 结尾\n; 第一个是Windows行结束对,而其他通常用于Mac或Linux文件.
由于您是在Visual Studio中开发的,因此您显然希望从下拉列表中选择"Windows".:-)
小智 40
如果您使用的是Visual Studio 2012:
转到菜单文件 → 高级保存选项 →选择行结束类型为Windows(CR LF).
Pro*_*ton 12
行结尾也称为换行符、行尾 (EOL)或换行符,是字符编码规范(例如 ASCII 或 EBCDIC)中的控制字符或控制字符序列,用于表示文本行的结束和开始一个新的。某些文本编辑器会在您按Enter 键时设置/实现此特殊字符。
\n回车符、换行符是行尾 ( EOL ) 的 ASCII 表示。它们将结束字符串的当前行,并开始新的一行。
\n然而,在操作系统层面,它们的处理方式有所不同:
\n回车(“CR”)字符(ASCII 13\\0x0D,\\r):将光标移动到行首,而不前进到下一行。该字符在 Commodore 和早期 Macintosh 操作系统(Mac OS 9 及更早版本)中用作换行符。
\n换行(“LF”)字符(ASCII 10\\0x0A,\\n):将光标向下移动到下一行,而不返回到行的开头。该字符在基于 Unix 的系统(Linux、macOS X、Android 等)中用作换行符。
\nCarriage\xc2\xa0Return Line\xc2\xa0Feed ("CRLF") 字符 (0x0D0A, \\r\\n):这实际上是两个 ASCII 字符,是 CR 和 LF 字符的组合。它将光标向下移动到下一行和该行的开头。该字符在大多数其他非 Unix 操作系统(包括 Microsoft Windows 和 Symbian OS)中用作换行符。
\n在 Visual Studio 中标准化不一致的行结尾意味着选择一种字符类型用于所有文件。它可能是:
\n但是,您可以使用根目录中的文件以更好的方式进行设置.gitattributes,以避免将文件从一个操作系统移动到另一个操作系统时发生冲突。
.gitattributes只需在应用程序的根目录中创建一个名为的新文件:
touch .gitattributes\nRun Code Online (Sandbox Code Playgroud)\n并在其中添加以下内容:
\n# Enforce Unix newlines\n* text=auto eol=lf\nRun Code Online (Sandbox Code Playgroud)\n这强制执行 Unix换行行结束字符。
\n注意:如果这是一个已经存在的项目,只需运行此命令即可使用.gitattributes.
git rm --cached -r .\ngit reset --hard\nRun Code Online (Sandbox Code Playgroud)\n就这样。
\n我希望这有帮助
\n您正在编辑的文件已使用其他一些不使用相同行结尾的编辑器进行编辑,从而生成具有混合行结尾的文件.
用于行结尾的ASCII字符是:
CR,回车
LF,换行
Windows = CRLF
Mac OS 9或更早版本= CR
Unix = LF
当您从网络复制粘贴某些内容时,您可能会得到不一致的行结尾。
为了解决这个问题,您可以使用 Visual Studio 扩展“行尾统一器”,它可以在保存文件时自动使行尾保持一致。
这意味着,例如,你的一些文本行<Carriage Return><Linefeed>(Windows标准),有些只有一个<Linefeed>(Unix标准).
如果单击"是",则源文件中的行尾将转换为具有相同格式.
这对编译器没有任何影响(因为行尾只计算为空格),但它可能会对其他工具产生一些影响(例如版本控制系统上的'diff').
| 归档时间: |
|
| 查看次数: |
134245 次 |
| 最近记录: |