Sublime Text 2: Как удалить пустые / пустые строки

Допустим, у меня есть текстовый файл со следующими девятью строками:

foo

bar

baz

qux

quux

Как я могу использовать Sublime Text 2, чтобы удалить все четыре пустых / пустых строки, оставив только пять строк?


person Nick    schedule 17.08.2012    source источник


Ответы (19)


Выделите текст

Нажмите:

  • Ctrl + H на ПК, или
  • Command + Alt + F на Mac или
  • Щелкните Найти- ›Заменить.

Убедитесь, что вы выбрали «регулярное выражение», нажав:

  • Alt + R на ПК или
  • Command + Alt + R на Mac или
  • Щелкните . * в поле поиска.

Найдите что: ^\n или ^(\r|\n\r?)

Заменить на: (ничего, оставьте поле пустым).

person Hugo Corrá    schedule 17.08.2012
comment
Это работает, спасибо! Есть ли способ привязать этот поиск / замену к сочетанию клавиш или как-то сохранить его для быстрого доступа? Я погуглил и ничего не нашел - person Nick; 17.08.2012
comment
Небольшое предложение: используйте ^(\r|\n\r?), чтобы скрыть все возможные разрывы строк. - person Haris Krajina; 07.11.2012
comment
Для меня (Sublime Text 2) ярлык (Alt + Cmd + F), затем, как описано Hugp Corra - person Maxence; 03.07.2013
comment
В OS X регулярное выражение включается с помощью Command-Alt-R (пока открыто окно поиска) - person Jedidja; 03.02.2014
comment
Лучшим способом найти все пустые строки (включая те, которые содержат пробелы) будет: ^[\s]*?[\n\r]+ - person Crates; 29.08.2014
comment
@Crates вам не нужен ?, поскольку * также соответствует нулю, а \s* будет соответствовать дополнительному '\ r', например, при редактировании текста Windows в среде Linux, поэтому ^\s*$ делает свое дело. - person drevicko; 01.11.2014
comment
И маленький последний шаг: нажмите Ctrl + Alt + Enter, чтобы заменить их все. - person avj; 26.08.2015
comment
Спасибо. Сработало отлично! - person Joshua Dance; 09.12.2015
comment
Также вы можете сделать это для нескольких файлов и папок. перейдите по этой ссылке docs.sublimetext.info/en/latest/search_and_replace/ - person cijagani; 27.12.2015
comment
Это продолжает правильно работать в Sublime Text 3. :-) - person Corey S.; 13.06.2018
comment
Теперь я знаю Cmd-Alt-R Спасибо - person AnhTN; 11.02.2019

Регулярное выражение в ответе Хьюго правильное, если в строке нет пробелов. Если есть пробелы, regexp может быть ^\s+$

person signalpillar    schedule 15.02.2013
comment
Это предполагает наличие пробелов. Кроме того, это не сработает для фактической замены строк ничем. Попробуйте вместо этого ^[\s]*?[\n\r]+. Я это проверил, и это работает. - person Crates; 29.08.2014

Для таких задач также существуют плагины ST2 / ST3. Мне нравятся эти двое:

В первом есть два метода удаления пустых / ненужных строк. Один из них назвал Delete Surplus Blank Lines, что круто. Удаляет только те строки, за которыми следует еще одна пустая строка.

person V-Light    schedule 12.06.2013

Решение Найти / Заменить:

Regex Find: \s+

Заменить на: // одиночный пробел

person UserBSS1    schedule 21.01.2015
comment
Собственно это: $ \ s + - person kris; 20.10.2015

Даже не знаю, как все это работает, но я попробовал ^\s*$, но ничего не вышло (остались пустые строки).

Вместо этого ^\s* у меня работает

{sublime text 3}

person abs    schedule 12.09.2015

Пришлось использовать:

замените \ n ^ \ s * \ n на \ n

Плагин https://github.com/NicholasBuse/sublime_DeleteBlankLines вообще ничего не сделал.

person Bruce Edge    schedule 13.11.2013
comment
Убедитесь, что вы выбрали область, на которую хотите воздействовать, а затем используйте соответствующие сочетания клавиш Windows: Ctrl + Alt + Backspace (Удалить пустые строки) Ctrl + Alt + Shift + Backspace (удалить лишние пустые строки) OSX: Ctrl + Alt + Delete (удалить пустые строки) Ctrl + Alt + Shift + Delete (Удалить пустые строки) Linux: Ctrl + Alt + Backspace (Удалить пустые строки) Ctrl + Alt + Shift + Backspace ( Удалить лишние пустые строки) - person Xtremefaith; 23.10.2014

Превосходный текст 2 и 3

Комментарии от @crates работают на меня,

Шаг 1. Просто нажмите ctrl + H

Шаг 2: нажмите кнопку RegEX

Шаг 3: напишите это в поиске: ^[\s]*?[\n\r]+

Шаг 4: замените все

person rsc05    schedule 16.10.2017

Проще, чем я думал. Ctrl + A, за которым следует Ctrl + H Затем выберите регулярное выражение .*. Замените \n\n на \n. Вуаля!

person Samuel Wahome    schedule 29.10.2015

Это более простой способ сделать это без регулярного выражения. вам нужно просто выделить весь текст. затем перейдите в: Edit -> Permute Lines -> Unique.

Это все. и все пустые строки будут удалены.

person Dihia LANASRI    schedule 27.03.2019
comment
Это удалит ВСЕ неуникальные строки. Не только заготовки. Итак, допустим, у вас есть HTML с большим количеством строк, являющихся одним закрывающим ‹/div›, он удалит их все, кроме первой. Или в коде он удалит все ваше закрытие}. Удалять просто пустые строки ненадежно, поймите, что это делает. - person Ivan McA; 08.01.2020

Вы ищете это:

^\n|^\s+$

он не удалит строку, если впереди есть содержимое с пробелом или вкладками>

e.g.:

они не будут удалены: ... пробел ... abc

... вкладка ... abc

это будет:

... пространство ... ... больше ничего ...

... вкладка ... ... больше ничего ...

person Brian Joseph Spinos    schedule 15.08.2014

Использование нескольких выделений: выберите одну пару разрывов строки, затем используйте Быстрый поиск всех (Alt + F3) или Быстрое добавление Далее (Ctrl + D) несколько раз, чтобы выделить их все; затем нажмите Enter, чтобы заменить их одинарными разрывами строки.

person deltab    schedule 25.10.2013
comment
В больших документах я обнаружил, что Sublime вызывает сбой. - person Thalecress; 31.10.2013

Другой способ: вы можете использовать командную строку cc.dbl ConyEdit (плагина) для удаления пустых строк или пустых строк.

person Dick    schedule 16.07.2018

Также есть «Строки соединения». Если в OSX, выделите весь свой текст и несколько раз нажмите CMD-J, и он свернет ваш выбор по строкам, удалив разрывы строк.

Изменить: этот подход оставит вам все в одной строке, а это не то, о чем вы просили.

person Donncha    schedule 10.04.2014
comment
я вижу, к чему вы идете ... это предложение приводит к перетаскиванию всего содержимого в одну строку, но макрос может заставить это работать: (ключи OSX) ctrl-q (макрос записи), cmd-j (строки соединения), down arrow, ctrl-q (конец макроса). Затем shift-ctrl-q повторять сколько угодно раз ... - person ptim; 13.02.2015

Для тех, кому интересен превосходный текстовый редактор, неофициальная-документация может быть интересной!

person herve    schedule 05.03.2015

Есть замечательный пакет (для Sublime 2 и 3) под названием «Trimmer», который удаляет пустые строки. Он также делает много других полезных вещей.

См. Это: https://packagecontrol.io/packages/Trimmer

person Yogesh Mistry    schedule 13.01.2018

Чтобы найти лишние пробелы и пустые строки, нажмите Ctrl + Shift + F Выберите Регулярные выражения Найти

[\n\r]{2,}

а затем замените на

\n

удалить все виды пробелов в Sublime и Dreamviewr

person Naeem Ijaz    schedule 20.12.2019

В моем случае некоторые пустые строки содержали символ юникода пробел нулевой ширины (U + 200b). Чтобы избавиться от пустых строк, в том числе с этим символом Юникода:

\s\x{200b}|^\s
person MetalGodwin    schedule 20.09.2018

Используя команду «Найти / заменить», попробуйте вставить выделение, начиная с конца строки над пустой строкой и заканчивая в начале строки после пробела. Это работает для одной пустой строки. Вы также можете повторить процесс для нескольких пустых строк. CTRL - H, поместите ваш выбор в поле поиска и поместите одну новую строку в поле замены с помощью копирования / вставки или другого метода.

person Clayton Loudon    schedule 12.05.2018

Если ^\n не работает должным образом ===> попробуйте .*[^\w]\n

person yuxin Zhang    schedule 29.04.2017