2011-07-08 57 views
7

我想通過eclipse代碼編輯器中的find/replace方法從我的代碼中刪除所有空行。通過查找/替換刪除eclipse代碼編輯器中的空行(Ctrl + F)

我用正則表達式\n\s*\n查找所有空行,但在用任何字符串替換空行時出現錯誤"Incompatible line delimiter near index 55110"

爲什麼我得到這個錯誤,以及如何正確刪除空行?什麼將工作替換字符?

有沒有這些工作的eclipse插件?

回答

9

你可以嘗試更換此:

^\s*\r?\n 

用空字符串。

+1

我使用這個 –

+0

@Dean_Wilson得到同樣的錯誤,你的操作系統是什麼? – Pacerier

2

我試過你的表情,並且它合併了一些行。我發現這一個工作:

\n\s*$ 

與替換[無]的。

但是,不能幫助神祕的錯誤。我想知道你是否有一個腐敗的文件,也許是一個迷路的CR/LF混亂。

(作爲一個插件...不知道有什麼,但是,好了,學習的awk,sed的,perl的...他們會一直爲你服務好你的雜項文本壓延作業)。

+0

我又得到了同樣的錯誤。 – gtiwari333

+0

聽起來像東西是腐敗的,無論是你的安裝日食或以某種方式你的文件。 您的正則表達式(或我的)是否在創建一個簡單的文件上進行測試? 哦,是的,應該提到,測試是好的! –

0

這爲我工作了多年:

替換:[\ t] + $

帶空白

+0

在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以將它們標記爲:http://stackoverflow.com/questions/1974491 – Kev

2

在回答你關於incompatible line delimiter near index錯誤問題的第一部分,Eclipse的似乎根據Text file encodingNew text file line delimiter設置,更換給定的行分隔符時出現問題。

我遇到了一個問題,Windows應用程序錯誤地格式化了UNIX格式的源文件,將CRLF插入到任何適合的位置。由於特殊的情況,我不得不用空間替換所有的CRLF。日食不會允許我這樣做,因爲這個錯誤,但抓住了前面和後面的字符的伎倆:

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

使用wjans建議答案:

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

我希望這有助於與你仍然得到incompatible line delimiter錯誤。

10

我不確定它是否是您的特定問題的答案,但\ r \的解決方案表明它是Windows和UNIX文本編碼之間的不兼容性。因此,一個簡單的解決方法是將文件轉換爲UNIX編碼

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

+1

這對我來說很有效。無需查找/替換,只需運行命令(我用它轉換爲Windows)。感謝您的最佳答案! – Beez

1

嘗試使用\R代替\n

\ r任何Unicode換行符序列\ u000D \ u000A | [\ u000A \ u000B \ u000C \ u000D \ u0085 \ u2028 \ u2029]

0

我一直有這個問題(或它的變體)多年,我懷疑它是由與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)更換所有

如果你不爲了做到這一點,或者你惹的文件首先你會得到關於「錯誤不兼容的行分隔符「題。

相關問題