我们想使用 Visual Studio 2005 来处理 SVN 存储库的本地副本。这个本地副本已经被 Mac OS X 签出(并且更新和提交只会在 Mac OS X 下进行,所以没有问题),因此行尾是 UNIX 风格的。
我们担心 Visual Studio 会引入 Windows 样式的行尾。是否可以强制 Visual Studio 使用 UNIX 行尾?
我们想使用 Visual Studio 2005 来处理 SVN 存储库的本地副本。这个本地副本已经被 Mac OS X 签出(并且更新和提交只会在 Mac OS X 下进行,所以没有问题),因此行尾是 UNIX 风格的。
我们担心 Visual Studio 会引入 Windows 样式的行尾。是否可以强制 Visual Studio 使用 UNIX 行尾?
警告:此解决方案不再适用于 Visual Studio 2017 及更高版本。相反,需要jcox
和的答案Munther Jaber
。我已将它们组合成一个答案。
当 OP 声明“文件 > 高级保存选项”时,选择 Unix Line Endings。
这只会影响创建的新文件。可以逐个文件修复之前创建的任何内容,或者您可以搜索将批量修复的工具。
以下是 Visual Studio Community 2017 可用的一些选项
我不知道您是否必须为每个文件设置高级保存选项,但这可能会阻止我遇到的问题,即我的 Visual Studio 不断将 CL RF 行结尾添加到我的文件中,这些文件都是 LF。
但我更进一步,我通过转到“工具>扩展和更新>在线”添加了一个名为“行尾统一器”的扩展,然后在右侧的搜索栏中搜索“行尾”。我将使用它来自动强制我的所有脚本以我选择的统一行结尾进行保存,但你可以用它做更多的事情。 https://marketplace.visualstudio.com/items?itemName=JakubBielawa.LineEndingsUnifier
strip'em 是另一种类似于 Line Endings Unifier 的解决方案。 http://www.grebulon.com/software/stripem.php
我不确定它们有何不同或两者的优缺点。我主要使用 Line Endings Unifier 只是因为它在 Visual Studio Marketplace 中。我想我过去用过所有这些方法,但我的记忆很模糊。
所以我发现这个问题和答案非常令人困惑,特别是因为我主要在 Linux 和 PhpStorm 中开发并且根本没有这些问题。
我发现对于 Visual Studio 2019,只有 Munther Jaber 的解决方案在与 @jcox.editorconfig
对新文件的更改结合使用时才有效。
但是,由于不熟悉 Visual Studio 本身,我花了很长时间才找出行尾框在哪里......
所以我制作了一个关于如何配置它的视频。 https://youtu.be/YfN3igHXTPo
VS2017 支持.editorconfig 文件,可以和你的项目一起签入。这是设置 Unix 行尾的相关命令:
end_of_line = lf
“文件 > 高级保存选项”,选择 Unix Line Endings works per file based。
或者,您可以使用 Strip'em Add-in for Visual Studio
当文件保存在 Visual Studio 中时,此加载项会转换文件的文本格式。
有一些 VS 扩展对解决这个问题很有用,我会推荐Trim line ends on save。这个扩展是免费和开源的。有类似的扩展可能对您有用,只需转到工具 | 扩展和更新并在线搜索“line end”
在 Windows 上的最新版本中,您可以访问
File > Preferences > Settings > Text Editor > Files > Eol