在Visual Studio中有没有一种方法可以将整个解决方案或项目的行尾(EOL)设置为LF?

8
在Visual Studio中,您可以将文件的EOL设置为CRLF、LF或CR,但您只能将其应用于单个文件。我正在寻找一种方法,以确保解决方案中创建的每个新文件都自动使用LF。有什么建议吗?谢谢!

不错的选择!获得这种行为的简单方法是从这个传统系统迁移到Linux或OS/X :) - chqrlie
以二进制模式打开输出文件。或者您是指源代码编辑器? - Weather Vane
@chqrlie,我使用的是现代系统,它不会出现EOL问题。使用LF是一种设计选择。 - Wispy
1
@Wispy:我的评论只是一个幽默的戏弄。CRLF约定,从1981年为MS/DOS复制自CP/M,当时已经过时了。苹果在2001年放弃了CR约定。Errare humanum est,perseverare diabolicum。 - chqrlie
@chqrlie,我已经做到了(从传统系统迁移)。 - Wispy
3个回答

9
在项目(或解决方案)的根目录中添加一个名为.editorconfig的文件,并使用以下条目,可以将行结尾默认设置为LF(有关新添加行的说明,请参见下面的注释)。
    [*]
    end_of_line = lf

引用自使用EditorConfig创建便携式自定义编辑器设置页面。

您可以向项目或代码库添加EditorConfig文件,以强制执行所有在代码库中工作的人的一致编码风格。
Visual Studio中的编辑器支持EditorConfig属性的核心集合:
[...]   end_of_line 当您将.editorconfig文件添加到文件层次结构中的文件夹中时,其设置适用于该级别及以下的所有适用文件。
当您在Visual Studio中向项目添加EditorConfig文件时,新的代码行将根据EditorConfig设置进行格式化。 除非运行以下命令之一,否则不会更改现有代码的格式:
- Code Cleanup (Ctrl+K, Ctrl+E),它应用任何空格设置,例如缩进样式和选定的代码样式设置,例如如何使用指令排序。 - Edit > Advanced > Format Document(或默认配置文件中的Ctrl+K,Ctrl+D),它仅应用空格设置,例如缩进样式。
注意

1
谢谢您的回答,这正是我所寻找的! - Wispy
1
注意:正在处理Unity项目... 我在Assets文件夹中找到了我的.editorconfig。 - KevinVictor
@KevinVictor 谢谢。我对Unity项目不熟悉,但根据文档,这意味着你找到的.editorconfig中的设置仅适用于Assets文件夹下的文件。项目中其他位置的文本文件仍将使用默认值。在项目根目录中添加.editorconfig文件将应用于其下所有文件,包括Assets和其他位置的文件。 - dxiv

0
如果您正在寻找一种控制在Windows中打开文件的默认翻译模式的方法,您可以使用_set_mode()或设置全局变量_fmode,该变量在此处有文档记录。
    int _fmode = _O_BINARY;

或者在运行时:

    _set_mode(_O_BINARY);  // defined in `<stdlib.h>`

似乎有一种方法可以通过修改CRT中的全局状态来更全局地设置此项,但在这种环境下,细节超出了我的技能水平。


-2

由于默认的 settings.json 包含 "files.eol": "auto",您可以在 VSCode 文档 下查看此内容。您需要将 默认的行尾字符 设置为适当的值,例如:enter image description here


5
问题没有提到VS Code,而你的回答不适用于内置的VS编辑器。 - dxiv
2
是的,抱歉。这个问题只涉及到Visual Studio。 - Wispy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接