Код Visual Studio - удалить все пустые строки - регулярное выражение

133

Я потратил некоторое время, пытаясь понять, как удалить все пустые строки в Visual Studio Code, и у меня не получается заставить его работать. Кто-нибудь знает, как это сделать?

Если я ищу ^$, набирая его в поле поиска, VSC действительно находит пустые строки (полностью пустые строки, означает отсутствие пробелов), но не удаляет их, когда я нажимаю «Заменить все». Ничего не делает: ^ $

Для пустых строк с пробелами ^\s+$поиск работает, но не удаляет их. Что он делает, так это заменяет их пустой строкой без пробелов :)) ^ \ S + $

Должно быть, я что-то делаю не так. Я просто не могу понять, что это. Кто-нибудь знает? Спасибо.

jozefk
источник
1
Я добавил комментарий к проблеме, которую вы открыли по этому поводу, но для кого-то еще, на $самом деле не соответствует символу новой строки, он соответствует токену нулевой ширины, который существует до символа новой строки. Чтобы заменить новую строку, вам необходимо использовать, \nно VS Code в настоящее время не поддерживает совпадения многострочных регулярных выражений ( # 313 )
Мари
Спасибо Мари. Кажется, нам нужно немного подождать.
jozefk
4
Найдите это в режиме регулярного выражения ^ $ \ n и замените его пустым. Удачного кодирования !!!
sajal rajabhoj
Простой шаг: stackoverflow.com/a/50042582/6597375
Дипу Регунатх

Ответы:

195

Для тех, кому может быть интересно - что у меня работало в версии 1.3.1 (и все еще работает в 1.33.1) для удаления пустых строк, которые я использовал ctrl+ h(найти и заменить) alt+ r(использовать регулярное выражение)

Затем в поле поиска:

\n\n

В поле замены:

\n

Это должно сделать два последовательных знака конца строки в один.

отредактирован:

Если вам нужно заменить несколько пустых строк (более двух) одновременно, вы можете использовать следующее регулярное выражение в поле поиска:

\n+

Если вам нужно заменить также пустые строки пробелами, вам нужно использовать следующее регулярное выражение в поле поиска:

\n+\s*\n

Код VS использует регулярные выражения javascript

suchoss
источник
10
По этим строкам я использую^[\r\n]{3,}
RJ Cuthbertson
Теперь работает. Спасибо :) Множество версий VSC между ними, но это нормально. Замените \ n \ n на \ n, работало нормально.
jozefk
Также посмотрите на решение @Dzumret ниже. В моем решении он удаляет только строки, в которых ничего нет. Его решение удаляет строки, в которых также есть пробелы (пробелы, табуляции)
suchoss
Этот ответ подходит не для всех случаев, что делать, если у вас есть пробелы в пустой строке
dhaker
1
Большой! Чтобы удалить более одной последовательных пустых строк, я заменил \ n + на \ n. Чтобы использовать пробелы, замените (^ \ s * \ n) + ничем
Иларио
115

Также работает этот шаблон регулярного выражения:

^\s*$\n

Затем CTRL+Enterзаменить все строки.

Объяснение вышеприведенного шаблона:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------
Dzumret
источник
Не уверен, но только это сработало для меня, по сравнению со всеми другими ответами. Хорошо объяснено. Спасибо.
Сай
У \nменя сработало размещение якорей снаружи. Затем VSCode позволил заменить его ничем (пустое поле «заменить на»).
Эрик
46

Код Visual Studio 1.13.0 Linux Lite:

  • Хит CTRL+H
  • Выберите «Использовать регулярное выражение».
  • Поле поиска: ^ (\ s) * $ \ n (введите столько окончаний \ n, сколько вам нужно)
  • Поле замены: пусто
  • Нажмите заменить все

Пустые строки пропали!

Антонио Дельгадо
источник
18

Вот мое регулярное выражение, оно улавливает все лишние новые строки и пустые строки, содержащие только пробелы, вкладки и т. Д.

\n\s*\n

И я заменяю все совпадения на \n

объяснение

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PS: Не забудьте выбрать параметр регулярного выражения в окне поиска !!

Шабин Мухаммед
источник
13

Попробуйте использовать ^ \ s * \ n в диалоговом окне замены кода VS -

посмотреть здесь

НЕО
источник
6

нет, ты делаешь это правильно.

Здесь у меня такое же поведение.

Я также пробовал другое регулярное выражение: (\r?\n){2,} но похоже, что оно работает только для отдельных строк.

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

Конечно, вырезать-вставить и вернуться из другого текстового редактора не составляет труда.

kobi7
источник
3
это помогло мне только после того, как я заменил все ^\s*$пустым, затем я попробовал(\r?\n){2,}
Михай Попеску
4

Не знаю, как вы, но запоминать множество команд для меня - это пустая трата времени!

Используйте расширение "Организатор пустых строк", вот описание:

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

Как использовать: проверьте описание расширения, но это действительно выглядит красиво!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

Другими словами, после сохранения файл автоматически очищается!

Марсело Агимовель
источник
Привет, @Jun! Я использую Sublime Text3, который решил много проблем, плюс он легче и имеет несколько приятных функций.
Марсело Агимовель
какой плагин вы используете с Sublime Text3? Раньше я использовал Webstorm, и он встроен.
июнь 711,
Html / CSS / JS Prettify
Marcelo Agimóvel
3

В Visual Studio мне больше всего подходят следующие варианты:

Заменить: на ^\n$ : <no value here>

Это найдет все пустые строки и очистит их.

Алан
источник
3

В моем случае. Решение kobi7 (\r?\n){2,}работало только для меня, мне пришлось запустить его снова с небольшой модификацией, чтобы заставить его работать для отдельных строк (просто изменил 2 на 1)

^(\r?\n){1,}
Mamdouh
источник
0

Code Maid Extension - это все, что вам нужно. Вы можете использовать сочетание клавиш Ctrl M + пробел, чтобы очистить файл, он удалит пустые строки и отформатирует код. Вы также можете настроить формат и правила очистки. Надеюсь, это будет полезно.

Nguyễn Top
источник
Не найдено (в Manjaro Linux).
Марсело Агимовель
2
Это потому, что это расширение Visual Studio, а не расширение Visual Studio Code.
Rene Juuse
0

Один или несколько разрывов строки (\ n) + и заменить на \ n

Гектор Матиас Гонсалес
источник
0

Вот моя версия для очистки пустых строк с пробелом:

find:    (?:\s*$(\r?\n)){2,}
replace: $1
Артур Пашек
источник
-1

Заменить: ^ \ n $ на: "пробел"


источник
и удалить все пустые места в документе?
Angry 84
-4

Windows 10, Visual Studio 2015

Ctrl + H

Найти ... -> ^ \ s *

Заменить все

Ctrl + A

Ctrl + K + F

Спасибо за вопрос, узнал кое-что новое.

имя не имеет значения
источник
5
Visual Studio 2015 - это не код Visual Studio.
Роберт Каучер