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

272

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

foo

bar

baz

qux

quux

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

Ник
источник

Ответы:

658

Выберите текст

Нажмите:

  • Ctrl+ Hна ПК или
  • Command+ Alt+ Fна Mac или
  • Нажмите Найти-> Заменить.

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

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

Найти то, что: ^\n

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

Уго Корра
источник
3
Это работает, спасибо! Есть ли способ привязать этот поиск / заменить к сочетанию клавиш или как-то сохранить его для быстрого доступа? Я погуглил его и ничего не смог найти
Ник
46
Небольшое предложение использовать ^(\r|\n\r?)для покрытия всех возможных разрывов строк.
Харис Краина
5
Для меня (Sublime Text 2) ярлык (Alt + Cmd + F), как описано Hugp Corra
Maxence
24
Лучший способ найти все пустые строки (включая строки с пробелами) был бы: ^[\s]*?[\n\r]+
Ящики
5
@Crate вам не нужен ?, так как *также соответствует нулю вхождений и \s*будет соответствовать дополнительному символу '\ r', например, при редактировании текста windows в среде linux, как и в ^\s*$случае с трюком.
drevicko
67

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

signalpillar
источник
32
Это предполагает, что есть пробел. Кроме того, он не будет работать для замены строк ничем. Попробуй ^[\s]*?[\n\r]+вместо этого. Я проверил это, и это работает.
Ящики
24

Есть также несколько плагинов ST2 / ST3 для таких задач. Мне нравятся эти два:

Первый имеет два метода для удаления пустых / ненужных строк. Один из них называется, Delete Surplus Blank Linesэто круто. Он удаляет только те строки, за которыми следует другая пустая строка

V-образный свет
источник
10

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

Найти регулярное выражение:\s+

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

Usersbs
источник
3
На самом деле, это: $ \ s +
Крис
8

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

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

{возвышенный текст 3}

абс
источник
7

Я должен был использовать:

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

Https://github.com/NicholasBuse/sublime_DeleteBlankLines плагин не сделал ничего.

Брюс Эдж
источник
2
Убедитесь, что вы выбрали область, на которую хотите повлиять, а затем используйте соответствующие сочетания клавиш Windows : Ctrl + Alt + Backspace (удаление пустых строк) Ctrl + Alt + Shift + Backspace (удаление лишних пустых строк) OSX : Ctrl + Alt + Delete (Удалить пустые строки) Ctrl + Alt + Shift + Delete (Удалить пустые строки) Linux : Ctrl + Alt + Backspace (Удалить пустые строки) Ctrl + Alt + Shift + Backspace (Удалить избыточные пустые строки)
Xtremefaith
5

Возвышенный текст 2 и 3

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

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

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

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

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

rsc05
источник
5

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

Сэмюэл Вахом
источник
3

Вы ищете это:

^\n|^\s+$

строка не будет удалена, если перед ней находится контент с пробелами или вкладками>

например:

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

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

это будет:

... космос ... ... ничего больше ...

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

Брайан Джозеф Спинос
источник
3

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

deltab
источник
1
В больших документах я нахожу этот сбой Sublime.
Thalecress
3

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

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

Дихия ЛАНАСРИ
источник
Это удалит ВСЕ неуникальные строки. Не просто заготовки. Итак, скажем, у вас есть HTML с множеством строк, являющихся одним закрытием </ div>, он удалит их все, кроме первой. Или в коде, он удалит все ваши закрытия}. Это не надежно, чтобы удалить только пустые строки, понять, что он делает.
Иван Мака
2

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

Дик
источник
1

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

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

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

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

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

Йогеш Мистри
источник
0

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

\s\x{200b}|^\s
MetalGodwin
источник
0

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

Клейтон Лоудон
источник
0

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

[\n\r]{2,}

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

\n

убрать все виды пробелов в возвышенном и сказочном видении

Наим Ияз
источник
-1

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

Юйсинь Чжан
источник