这种情况反复发生,非常烦人。我将一些 PHP 代码上传到客户端的服务器。几个星期过去了。他们要求进行更改,我重新下载代码,因为他们已经进行了一些更改。但是,我上次查看时曾经整洁的代码现在到处都添加了额外的空白行。所以现在我在一些代码之间有两行空格,现在有 3 行。我有一堆行粘在一起,因为它们是同一个 for 循环或类似的一部分,它们现在都分散在周围,没有办法来区分它们。
有没有解决这个问题的程序/实用程序?
这种情况反复发生,非常烦人。我将一些 PHP 代码上传到客户端的服务器。几个星期过去了。他们要求进行更改,我重新下载代码,因为他们已经进行了一些更改。但是,我上次查看时曾经整洁的代码现在到处都添加了额外的空白行。所以现在我在一些代码之间有两行空格,现在有 3 行。我有一堆行粘在一起,因为它们是同一个 for 循环或类似的一部分,它们现在都分散在周围,没有办法来区分它们。
有没有解决这个问题的程序/实用程序?
以二进制模式而不是 ascii 上传。Ascii 模式正在将所有换行符(unix 行尾字符)更改为回车 + 换行符(Windows 行尾字符)。
当您使用空格时(您使用的是空格,对吗?),您也可能在使用制表符的其他编辑器中遇到问题。在 Linux/OSX 和 Windows 上的开发人员之间共享源代码时,我看到了类似的问题。
我敢打赌这是由于系统试图将在 Windows 系统中创建的文本文件转换为 Unix/Linux 系统正在使用的文件(然后再返回)。
Windows 同时使用回车和换行,我认为 Unix 只使用换行(或者是回车)。
我使用 Ultra Edit 作为我的主要文本编辑器(不是 Emacs 和 vi 不规则 :o),它有 DOS 模式和 Unix 模式来处理这类事情。
强制您的客户端以二进制模式传输所有文件。当您的文件中有 unicode 文本时,这也很有用,您永远不知道文本模式可能会做出什么假设!
猜测一下,我会说您是在 Unix/Max 系统上开发,但客户在 Windows 系统上运行(反之亦然)。我还猜想您正在以二进制模式上传/下载文件。Windows 编辑器可能正在将 Unix LF 转换为 LF/CR 对,您的编辑器会将其视为两个新行。如果您以 ASCII 模式上传和下载,文件将在两种格式之间自动转换。