Піднесений текст 2: Як видалити порожні / порожні рядки


271

Скажімо, у мене був текстовий файл із наступними дев'ятьма рядками:

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?)для покриття всіх можливих розривів рядків.
Haris Krajina

5
Для мене (Sublime Text 2) ярлик - це (Alt + Cmd + F), тоді як описує Hugp Corra
Maxence

24
Кращий спосіб знайти всі порожні рядки (включаючи пробіли): ^[\s]*?[\n\r]+
ящики

5
@Crates вам не знадобиться ?, оскільки *також відповідає нульовим випадкам і \s*відповідатиме додатковому "\ r", наприклад, при редагуванні тексту Windows у середовищі Linux, так ^\s*$само і в цьому.
drevicko

67

Зображення у відповіді Гюго правильне, коли в рядку немає пробілів. У випадку, якщо є простір, може бути регулярний вираз^\s+$


32
Це передбачає, що існує пробіл. Крім того, це не буде працювати для фактичної заміни рядків нічим. Спробуйте ^[\s]*?[\n\r]+замість цього. Я це перевірив, і це працює.
ящики

24

Також є такі плагіни ST2 / ST3 для таких завдань. Мені подобаються ці два:

Перший має два способи видалення порожніх / непотрібних рядків. Один з них назвав, Delete Surplus Blank Linesякий класно. Він видаляє лише ті рядки, за якими слідує інший порожній рядок



8

Навіть не знаю, як це все працює, але я намагався ^\s*$і не працював (залишаючи ще порожні рядки).

Це замість цього ^\s*працює для мене

{sublime text 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 + Видалити (Видалити порожні рядки) Linux : Ctrl + Alt + Backspace (Видалити порожні рядки) Ctrl + Alt + Shift + Backspace (Видалити
надлишки

5

Піднесений текст 2 і 3

Коментарі @crates працюють для мене,

Крок 1. Просто натисніть ctrl+H

Крок 2: натисніть клавішу RegEX

Крок 3: напишіть це у Знахідку: ^[\s]*?[\n\r]+

Крок 4: замініть всі


5

Простіше, ніж я думав. Ctrl+ AДалі слідує Ctrl+ HПотім виберіть Регулярне вираження .*. Замініть \n\nна \n. Вуаля!


3

Ви шукаєте це:

^\n|^\s+$

вона не видалить рядок, якщо на ній є вміст із пробілом або вкладками>

наприклад:

вони не будуть видалені: ... space ... abc

... вкладка ... абс

це буде:

... простір ... ... більше нічого ...

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


3

Використання кількох виборів: виберіть одну пару розривів рядків, а потім скористайтеся Швидким пошук усіх ( Alt+ F3) або Швидке додавання наступного ( Ctrl+ D), щоб вибрати їх усі; потім натисніть, Enterщоб замінити їх однорядними перервами.


1
У великих документах я вважаю це збоєм піднесеного.
Thalecress

3

Це більш простий спосіб зробити це без регулярного вираження. ви повинні просто вибрати весь текст. потім перейдіть до: Редагувати -> Лінії перестановки -> Унікально.

Це все. і всі порожні рядки будуть видалені.


Це видалить ВСІ не унікальні рядки. Не лише заготовки. Так, скажімо, у вас HTML з великою кількістю рядків, що є одним закриттям </div>, він видалить їх усі, крім першого. Або в коді вона видалить усі ваші закриття}. Це не є надійним, щоб видалити лише порожні рядки, зрозуміти, що це робить.
Іван МакА

2

Іншим способом можна використовувати командний рядок cc.dblConyEdit (плагін) для видалення порожніх рядків або порожніх рядків.


1

Також є "Об'єднати лінії". Якщо в OSX, виберіть увесь текст і кілька разів натисніть CMD-J, і він обвалить ваш вибір за рядком, усуваючи розриви рядків.

Редагувати: Цей підхід дозволить вам залишити все в одному рядку, а це не те, про що ви просили.


2
Я бачу , де ви збираєтеся з цим , хоча .. це припущення призводить перетягуючи всі вміст в один рядок, але макрос б зробити цю роботу: (ключі OSX) ctrl-q(запис макросів), cmd-j(приєднатися до лінії), down arrow, ctrl-q(кінець макро) . Потім shift-ctrl-qповторювати так часто, як потрібно…
ptim



0

У моєму випадку деякі порожні рядки містили простір нульової ширини символу Unicode (U + 200b). Щоб видалити порожні рядки, в тому числі рядки з цим символом unicode:

\s\x{200b}|^\s

0

Спробуйте знайти / замінити, спробуйте вставити виділення, починаючи з кінця рядка над порожнім рядком і закінчуючи на початку рядка після порожнього. Це працює для одного порожнього рядка. Ви також можете повторити процес для кількох порожніх рядків. CTRL- H, помістіть свій вибір у поле пошуку та поставте один новий рядок у поле заміни за допомогою копіювання / вставки або іншого способу.


0

Щоб знайти додаткові пробіли та порожні рядки, натисніть Ctrl+ Shift+ F Виберіть Знайти регулярні вирази

[\n\r]{2,}

а потім замінити на

\n

щоб видалити всі види пробілів у піднесеному і оглядачі снів


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.