Eclipse 和 Windows 新行

当我的桌面崩溃时,我不得不把我的 Eclipse 工作区从 Linux 迁移到 Windows。一周后,我将它复制回 Linux,愉快地编写代码,致力于 CVS。唉,windows newline 已经污染了很多文件,所以 CVS diff 会转储整个文件,即使我修改了一两行!

我可以编写一个脚本,但是我想知道它是否会弄乱我的 Eclipse 项目文件。

145315 次浏览

你可以试试。问题在于 Windows 在给定新行时会插入回车符和换行符。Unix 系统刚刚插入了一个线饲料。因此,额外的回车字符可能是为什么您的 Eclipse 混乱与换行符的原因。

从项目中获取一个或两个文件并转换它们。您可以使用记事本 + + 来完成此操作。打开文件,转到 Format-> Convert to Unix (当您使用 Windows 时)。

在 Linux 中,只需在命令行上尝试这样做:

sed 's/$'"/`echo \\\r`/" yourfile.java > output.java

有一个方便的 bash 实用程序—— dos2unix——它是一个 DOS/MAC 到 UNIX 文本文件格式转换器,如果还没有安装到您的发行版上,应该可以通过软件包管理器轻松安装。Dos2unix 手册页

如上所述,给你给你:

将文件编码设置为 UTF-8,将新文件的行结尾设置为 Unix,这样文本文件保存的格式就不是 Windows 操作系统特有的,并且最容易在不同的开发人员桌面上共享:

  • 导航到工作区首选项(常规: 工作区)
  • 将文本文件编码更改为 UTF-8
  • 将“新建文本文件行分隔符”更改为“其他”,并从选择列表中选择 Unix

alt text

  • 注意: 要转换现有文件的行尾,请在 Eclipse 中打开该文件并选择 File : Convert Line Delimiters to : Unix

提示 : 通过在 Package Explorer 中选择,然后转到菜单项 File : Convert Line Delimiters to : Unix,可以很容易地转换现有文件

要递归地从所有子目录中的 CVS/* 文件中删除回车(\r) ,请在 unix shell 中运行以下命令:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;

除了 Eclipse 解决方案和 另一个答案中提到的工具之外,还要考虑 翻转。它可以在普通和 Windows 换行符之间进行“切换”,并且可以很好地保存文件的时间戳和其他统计信息。

你可以这样用它来解决你的问题:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(我加了一个条款,无视你的。如果您使用 git,可以使用 git 目录,但是由于翻转默认忽略二进制文件,所以您可能不需要这个。)

我有相同的,日食污染的文件,即使一行改变。 解决方案: Eclipse git 设置-> 添加条目: 关键词: core.autocrlf 价值观: 真实

enter image description here

enter image description here