2015-07-14 2 views
21

В Atom, если я активирую режим регулярных выражений на инструменте поиска и замены, он может найти новые строки как \n, но когда я пытаюсь их заменить, они все еще там.Как заменить новую строку в Atom?

Нет ли способа заменить строку с расширением строки в Atom?

ответ

24

Похоже, что Atom соответствует новым строкам как \r\n, но ведет себя непоследовательно при замене только \n ничем.

Так что строки новой строки, похоже, соответствуют \s+ и \r\n, и только «половина» от концов линии \n.

  • Если заменить \n со строкой, ничего не происходит с конца строки, а строка добавляется к следующей строке
  • Если заменить \r со строкой, ничего не происходит вообще, но курсор достижения.
+0

уверен, что это проблема с регулярными выражениями Atom, в отличии к файлу, содержащему разные окончания строк (а Atom не делает различий визуальным)? – axic

+0

Не волнует, есть ли проблема в «движке регулярных выражений Atom». Поиск-и-замещение ведет себя странным и удивительным образом. – djsadinoff

+1

Ну, вы не ответили на вторую часть моего комментария - а именно, это настоящая ошибка или что-то без визуальной обратной связи? Ваш ответ не совсем ясен в отношении используемых фактических выражений - вы пытались «\ r? \ N $»? Или, возможно, сначала заменить все вхождения \ r на \ n с помощью «\ r \ n? $»? – axic

0

Пуристам, вероятно, не понравится мое решение, но вы также можете преобразовать поиск и замену входов в многострочное текстовое поле, скопировав контент с несколькими разрывами строк и вставив их в входы поиска/замены. Он будет работать с или без использования регулярного выражения.

Например, вы можете скопировать эти 3 строки и вставить их в оба найти и заменить входы:

line 1 
line 2 
line 3 

Теперь, когда ваши входы имеют количество линий, что вам нужно, вы можете изменить их, как вы хотите (и при необходимости добавьте регулярное выражение).

+1

Не работает для меня. –

2

Вы можете использовать обратную связь:

например. Заменить тройные пустые строки с одной пустой строкой

Найти регулярное выражение: (\ г \ п) {3}

Заменить: $ 1

Вы можете указать двойные пустые строки с (\ г \ п) { 2} ... или любое число n пустых строк с (\ r \ n) {n}. И вы можете опустить $ 1 и оставить заменять пустой, чтобы удалить пустые строки.

Если вы хотите заменить 3 пустые строки двумя, ваша строка-заменитель может быть $ 1 $ 1 или $ 1 $ 2 (или даже $ 1 $ 3 ... $ 3 $ 3 ... $ 3 $ 2 ...): $ 1 просто ссылается на первое скобленое выражение \ r \ n; $ 2 со вторым (что совпадает с первым, поэтому $ 1 $ 1 заменяется так же, как $ 1 $ 2, потому что $ 1 == $ 2). Это обобщает на n пустых строк.

+0

Я думаю, что ОП пытался заменить строки, которые охватывают линии, а не пустые строки. – TriskalJM

+0

Это здорово, но реальный трюк - использовать \ r \ n, который я нашел удивительным. благодаря! – djsadinoff

3

Это Alittle немного поздно, чтобы ответить, но я использую следующий термин для поиска и работа с Atom v1.19.7 x64

\r?\n|\r 

BR

Смежные вопросы