【问题标题】:Remove empty lines in eclipse code editor by find/replace (Ctrl+F)通过查找/替换 (Ctrl+F) 删除 Eclipse 代码编辑器中的空行
【发布时间】:2011-07-08 04:04:30
【问题描述】:

我想通过 Eclipse 代码编辑器中的查找/替换方法从我的代码中删除所有空行。

我使用正则表达式 \n\s*\n 查找所有空行,但在用任何字符串替换空行时出现错误 "Incompatible line delimiter near index 55110"

为什么会出现此错误以及如何正确删除空白行?工作替换角色会是什么?

这类工作有 eclipse 插件吗?

【问题讨论】:

    标签: regex string eclipse


    【解决方案1】:

    你可以试试替换这个:

    ^\s*\r?\n
    

    使用空字符串。

    【讨论】:

    • @Dean_Wilson,你的操作系统是什么?
    【解决方案2】:

    尝试使用\R 而不是\n

    \R 任何 Unicode 换行序列 \u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]

    【讨论】:

      【解决方案3】:

      我不确定这是否是您特定问题的答案,但带有 \r\ .. 的解决方案表明它是 Windows 和 UNIX 文本编码之间的不兼容。所以一个简单的解决方案是将文件转换为 UNIX 编码

      在 Eclipse 中Menu -> File -> Convert line delimiter -> Unix

      【讨论】:

      • 这对我很有效。无需查找/替换,只需运行命令(我用它来转换为 Windows)。感谢您的最佳答案!
      【解决方案4】:

      我试过你的表达方式,它结合了一些台词。我发现这个可以工作:

      \n\s*$
      

      替换为 [nothing]。

      不过,无法解决这个神秘的错误。我想知道您是否有损坏的文件,可能是杂散的 CR/LF 混淆。

      (至于插件...什么都不知道,但是,学习 awk、sed、perl...它们总能很好地为您提供各种文本处理工作。)

      【讨论】:

      • 听起来有些东西已经损坏,无论是您安装的 eclipse 还是您的文件。您的正则表达式(或我的)是否适用于创建用于测试的简单文件?哦,是的,应该提一下,测试很好!
      【解决方案5】:

      在回答您关于incompatible line delimiter near index 错误的问题的第一部分时,Eclipse 似乎存在根据Text file encodingNew text file line delimiter 设置替换给定行分隔符的问题。

      我遇到了一个问题,即 Windows 应用程序错误地格式化了 UNIX 格式的源文件,在它认为合适的地方插入了 CRLF。由于特殊情况,我不得不用空格替换所有 CRLF。由于那个错误,Eclipse 不允许我这样做,但是抓住前面和后面的字符就可以了:

      Find   : (.)\r\n(.)
      Replace: $1 $2
      

      使用 wjans 建议的答案:

      Find   : ^\s*\r?\n(.)
      Replace: $1
      

      我希望这对那些仍然遇到incompatible line delimiter 错误的人有所帮助。

      【讨论】:

        【解决方案6】:

        这对我有用多年:

        替换:[\t]+$

        有空格

        【讨论】:

        • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请将它们标记为:stackoverflow.com/questions/1974491
        【解决方案7】:

        多年来我一直遇到这个问题(或它的变体),我怀疑这是由于与 Mac 用户共享文件服务器造成的,特别是 Dreamweaver 的用户(基本上是图形艺术家)。看起来它将其编辑(上传?)的文件更改为混合/奇怪的行尾,似乎是 NL+CR(十六进制 0a0d)、双 CR(0d0d)和统一换行符(0a)的组合。

        如果你在 vim 中打开同一个文件,它不是双倍行距,而是所有行都以 ^M 符号结尾。

        不管怎样,这个页面上的解决方案都不适合我,但我找到了一些可行的方法。

        您需要按顺序执行这些步骤(Eclipse 4.2.2)

        1.) 文件 -> 将行分隔符转换为 -> MacOS 9 (CR, \r)

        2.) 编辑 -> 查找/替换 (Ctrl - F)

        Find: \r$
        Replace: leave blank
        

        3.) 全部替换

        如果您没有按顺序执行此操作,或者您首先弄乱了文件,您将收到关于“不兼容的行分隔符”的错误,就像问题中一样。

        【讨论】:

          猜你喜欢
          • 2010-11-17
          • 2019-10-25
          • 2012-09-26
          • 1970-01-01
          • 2017-05-02
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 1970-01-01
          相关资源
          最近更新 更多