Удалите пустые строки в редакторе кода затмения путем поиска / замены (Ctrl + F) - PullRequest
8 голосов
/ 08 июля 2011

Я хочу удалить все пустые строки из моего кода методом поиска / замены в редакторе кода затмения.

Я использовал регулярное выражение \n\s*\n, чтобы найти все пустые строки, но получил ошибку "Incompatible line delimiter near index 55110" при замене пустой строки любой строкой.

Почему я получил эту ошибку и как правильно удалить пустые строки? Каким будет рабочий замещающий персонаж?

Есть ли плагин Eclipse для такой работы?

Ответы [ 7 ]

12 голосов
/ 14 января 2014

Я не уверен, является ли это ответом на вашу конкретную проблему, но решение с \ r \ .. указывает на несовместимость кодировки текста в Windows и UNIX.Поэтому простым решением будет преобразовать файл в кодировку UNIX

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

9 голосов
/ 08 июля 2011

Вы можете попробовать заменить это:

^\s*\r?\n

с пустой строкой.

4 голосов
/ 24 марта 2014

попробуйте использовать \R вместо \n

\ R Любая последовательность перевода строки Unicode \ u000D \ u000A | [\ u000A \ u000B \ u000C \ u00D \ u2085 \ u2028 \ u2029]

3 голосов
/ 08 июля 2011

Я попробовал ваше выражение, и оно объединило несколько строк. Я нашел этот на работу:

\n\s*$

с заменой [ничто].

Не могу помочь с загадочной ошибкой. Интересно, есть ли у вас испорченный файл, может быть, ошибочная путаница CR / LF.

(Что касается плагина ... не знаю ни одного, но, ну, выучите awk, sed, perl ... они всегда будут вам полезны для выполнения различных работ по обработке текста.)

2 голосов
/ 25 сентября 2013

В ответ на первую часть вашего вопроса об ошибке incompatible line delimiter near index в Eclipse, похоже, возникла проблема с заменой указанного разделителя строк в зависимости от настроек Text file encoding и New text file line delimiter.

Iвозникла проблема, из-за которой приложение Windows по ошибке форматировало исходные файлы в формате UNIX, вставляя CRLF везде, где сочтет нужным.Из-за конкретной ситуации мне пришлось заменить все CRLF на пробелы.Eclipse не позволил бы мне сделать это из-за этой ошибки, но захват предыдущих и последующих символов добился цели:

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

Использование wjans предлагаемого ответа:

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

Я надеюсьэто помогает тем из вас, кто все еще получает ошибку incompatible line delimiter.

0 голосов
/ 24 июня 2014

У меня была эта проблема (или ее разновидности) в течение многих лет, и я подозреваю, что она вызвана совместным использованием файловых серверов с пользователями Mac, особенно с пользователями Dreamweaver (в основном, графическими художниками).Похоже, что он изменяет файлы, которые редактирует (загружает?), На смешанные / странные окончания строк, которые выглядят как комбинация NL + CR (hex 0a0d), double-CR (0d0d) и солидарных новых строк (0a).

Если вы открыли один и тот же файл в vim, он не будет разделен двойным интервалом, НО все строки заканчиваются символом ^ M.

В любом случае, ни одно из решений на этой странице не сработало, но я нашелчто-то, что делает.

Вам нужно выполнить эти шаги по порядку (Eclipse 4.2.2)

1.) Файл -> Преобразовать разделители строк в -> MacOS 9 (CR, \ r)

2.) Правка -> Найти / Заменить (Ctrl - F)

Find: \r$
Replace: leave blank

3.) Заменить все

Если вы не сделаете это по порядку илиесли вы сначала возитесь с файлом, то получите сообщение о «несовместимых разделителях строк», как в вопросе.

0 голосов
/ 04 марта 2012

Это работало для меня годами:

Заменить: [\ t] + $

С бланком

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...