我想通过eclipse代码编辑器中的find / replace方法从代码中删除所有空行。
我使用正则表达式\n\s*\n
来查找所有空白行,但在用任何字符串替换空行时出现错误"Incompatible line delimiter near index 55110"
。
为什么我收到此错误以及如何正确删除空白行?什么是工作替代人物?
这些工作有没有eclipse插件?
答案 0 :(得分:12)
我不确定它是否是您特定问题的答案,但使用\ r \ ..的解决方案表明它与Windows和UNIX文本编码之间不兼容。因此,一个简单的解决方案是将文件转换为UNIX编码
在Eclipse Menu -> File -> Convert line delimiter -> Unix
答案 1 :(得分:9)
您可以尝试替换它:
^\s*\r?\n
使用空字符串。
答案 2 :(得分:4)
尝试使用\R
代替\n
\ R任何Unicode换行符序列\ u000D \ u000A | [\ u000A \ u000B \ u000C \ u000D \ u0085 \ u2028 \ u2029]
答案 3 :(得分:3)
我尝试了你的表达,并将它组合在一起。我找到了这个工作:
\n\s*$
替换[nothing]。
但是,无法帮助解决这个神秘的错误。我想知道你是否有一个腐败的文件,可能是一个混乱的CR / LF混淆。(至于插件......不知道有什么,但是,好吧,学习awk,sed,perl ......他们总能为你的杂项文本工作提供良好的服务。)
答案 4 :(得分:2)
在回答有关incompatible line delimiter near index
错误的问题的第一部分时,Eclipse似乎在替换给定的行分隔符时遇到问题,具体取决于Text file encoding
和New text file line delimiter
设置。< / p>
我遇到一个问题,即Windows应用程序错误地格式化了UNIX格式的源文件,并在其认为合适的地方插入CRLF。由于特殊情况,我不得不用空间替换所有的CRLF。由于这个错误,Eclipse不允许我这样做,但抓住前面和后面的角色可以解决这个问题:
Find : (.)\r\n(.)
Replace: $1 $2
使用wjans建议回答:
Find : ^\s*\r?\n(.)
Replace: $1
我希望这有助于您仍然遇到incompatible line delimiter
错误。
答案 5 :(得分:0)
这对我有用了多年:
替换:[\ t] + $
空白
答案 6 :(得分:0)
我多年来一直遇到这个问题(或其变体),我怀疑它是由与Mac用户共享文件服务器引起的,特别是Dreamweaver的用户(基本上是图形艺术家)。看起来它将它编辑的文件(上传?)更改为混合/怪异的行结尾,这些结尾似乎是NL + CR(十六进制0a0d),双CR(0d0d)和固定换行符(0a)的组合。
如果你在vim中打开了同一个文件,它不会是双倍间距但是这些行都以^ M符号结尾。
无论如何,这个页面上的解决方案都没有为我工作,但我找到了一些可行的方法。
您需要按顺序执行这些步骤(Eclipse 4.2.2)
1。)文件 - &gt;将行分隔符转换为 - &gt; MacOS 9(CR,\ r)
2。)编辑 - &gt;查找/替换(Ctrl - F)
Find: \r$
Replace: leave blank
3。)全部替换
如果您没有按顺序执行此操作,或者您首先弄乱了该文件,那么您将收到有关&#34;不兼容的行分隔符的错误&#34;就像问题一样。