如何在 IntelliJ IDEA 中禁用行分隔符中的差异?

问题描述 投票:0回答:7

我在 Windows 上使用 Intellij IDEA 14,在 Unix 服务器上使用 Git 作为 VCS。 Windows 中的行分隔符是 CLRF (

\r\n
),Unix 中是 LF (
\n
)。 在 Git 中,我使用配置
--global core.autocrlf input
。这将在提交时将所有 CRLF 转换为 LF。

当我在格式良好的文件上使用“重新格式化代码”选项时,IDEA 会将文件标记为已更改,并仅在行分隔符中显示差异。

Right mouse button on changed file -> Git -> 与最新存储库版本比较“/></p>

<p>如何在 IDEA 中禁用它?</p>
    </question>
<answer tick=

在窗口右下角,将

[CRLF]
更改为
[LF]

我也在 Windows 上进行开发,因为我们的服务器由 Linux 提供支持,并且所有代码都必须基于 Linux,所以我更愿意将所有文件更改为 LF 而不是 CRLF。

来自 git 命令行:

git config --global core.autocrlf false

我正在使用intellij idea,所以这很简单:

1) 文件 --> 设置 --> 编辑器 --> 代码风格: (对于任何新文件都会 被创建)

a.方案:默认

b.行分隔符:unix 和 os x ( )

2) 标记项目根目录 --> 文件 --> 行分隔符 --> LF Unix 和 os x ( )(对于现有文件)

备注:您还可以使用 dos2unix.exe 等应用程序或其他一些脚本。

比我使用命令行所做的:(你也可以从这个想法中做到这一点)

git commit -m "bla bla"
git add .
git push origin master

从那时起,我就没有收到这些警告了

如果您像我一样来到这个线程寻求答案,解释为什么您的单元测试 (JUnit) 无法将生成的 JSON(或任何其他包含行分隔符的结构)与手写的结构进行比较,您应该替换 经过 (对于 Windows)在你的字符串中。上面给出的说明不适用于这种情况。

选择文件夹 -> 文件 -> 文件属性 -> 行分隔符 -> LF

所有文件将被标记为

changed

定期提交行分隔符更改。 它会失败,但

changed
标记会消失。

新文件将继承文件夹属性。

在 Intellij 17.3 中,您可以在比较窗口的“比较依据”组合框中选择是否要比较“二进制内容”或“文本”。在第二种情况下,CRLF 和 LF 不会显示为“不同”。

git config --global core.autocrlf false

这对我有用:)

在同一目录中创建 parser.py。 更改名称并运行。 享受))

with open('./file_to_fix.py', 'r') as f:
    a = f.read()

with open('./file_to_fix.py', 'w') as f:
    # for i in a.split('\r\n'):
    #     f.write(i)
    aa = a.replace('\r\n', '\n')
    f.write(aa)

您可以在字符串中使用

System.lineSeparator()
。 这对我很有帮助,因为我的代码必须在 Linux 服务器上检查,而我的本地计算机使用 Windows,因此这两者的行分隔符是不同的。

java git intellij-idea diff
7个回答
23
投票

我也在 Windows 上进行开发,因为我们的服务器由 Linux 提供支持,并且所有代码都必须基于 Linux,所以我更愿意将所有文件更改为 LF 而不是 CRLF。

来自 git 命令行:

git config --global core.autocrlf false

我正在使用intellij idea,所以这很简单:

1) 文件 --> 设置 --> 编辑器 --> 代码风格: (对于任何新文件都会 被创建)

a.方案:默认

b.行分隔符:unix 和 os x ( )

2) 标记项目根目录 --> 文件 --> 行分隔符 --> LF Unix 和 os x ( )(对于现有文件)

备注:您还可以使用 dos2unix.exe 等应用程序或其他一些脚本。

比我使用命令行所做的:(你也可以从这个想法中做到这一点)

git commit -m "bla bla"
git add .
git push origin master

从那时起,我就没有收到这些警告了


7
投票

如果您像我一样来到这个线程寻求答案,解释为什么您的单元测试 (JUnit) 无法将生成的 JSON(或任何其他包含行分隔符的结构)与手写的结构进行比较,您应该替换 经过 (对于 Windows)在你的字符串中。上面给出的说明不适用于这种情况。


2
投票

选择文件夹 -> 文件 -> 文件属性 -> 行分隔符 -> LF

所有文件将被标记为

changed

定期提交行分隔符更改。 它会失败,但

changed
标记会消失。

新文件将继承文件夹属性。


0
投票

在 Intellij 17.3 中,您可以在比较窗口的“比较依据”组合框中选择是否要比较“二进制内容”或“文本”。在第二种情况下,CRLF 和 LF 不会显示为“不同”。


0
投票

git config --global core.autocrlf false

这对我有用:)


-2
投票

在同一目录中创建 parser.py。 更改名称并运行。 享受))

with open('./file_to_fix.py', 'r') as f:
    a = f.read()

with open('./file_to_fix.py', 'w') as f:
    # for i in a.split('\r\n'):
    #     f.write(i)
    aa = a.replace('\r\n', '\n')
    f.write(aa)


-2
投票

您可以在字符串中使用

System.lineSeparator()
。 这对我很有帮助,因为我的代码必须在 Linux 服务器上检查,而我的本地计算机使用 Windows,因此这两者的行分隔符是不同的。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.