Удалить пустые строки в тексте с помощью Visual Studio

152

Как убрать пустые строки в Visual Studio?

Аля
источник
Для кода Visual Studio
Дипу Регунат
2
Есть ли ответ на это без использования регулярного выражения? Просто с помощью ярлыка, например CTRL-KD, который форматирует документ, но забывает удалить двойные пустые строки.
Jan

Ответы:

174

Поскольку Visual Studio 2012 изменил свой синтаксис регулярных выражений, исходные ответы Ala переводятся в VS 2012 следующим образом:

Удалить одиночные пустые строки

Старый:

^:b*$\n

Новое:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013 (спасибо BozoJoe и Джо Джонстону):

^\s*$\n

Удалить двойные пустые строки

Старый:

^:b*\n:b*\n

Новое:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Катится прямо с вашего языка.

Вот конверсионный лист из MSDN.

Леннарт
источник
13
vs2013: ^ \ s + $ \ n
BozoJoe
Ответ BozoJoe, для меня, также хорошо работал в VS2012 (обновление 4)
BertuPG
5
^ \ s + $ \ n изменено на ^ \ s * $ \ n, чтобы разрешить (без содержимого) чистые переводы строк.
Джо Джонстон
4
Как я могу сделать это автоматизированным, как работать с CTRL + K + D?
ErTR
Это предназначено для работы со строками или для кода в редакторе?
Кайл Делани
114

Это очень полезно, особенно если вы хотите упорядочить или сравнить коды, спасибо за людей, которые отвечают на этот вопрос, я получил ответ отсюда и хотел бы поделиться им со Stackoverflow:

Visual Studio имеет возможность удалять пустые строки в операции замены, используя регулярные выражения.

  • Нажмите Ctrl- H(быстрая замена)

  • Галочка "Использовать регулярные выражения"

  • В Find укажите ^$\n

  • В поле Заменить удалите все.

  • Нажмите «Заменить все»

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

Регулярное выражение для пустой строки состоит из

Начало строки ^

Конец линии $

Разрыв строки \n

Обратите внимание, что обычно в Windows конец строки обозначается 2 символами - Возврат каретки (CR, ASCII 13, \r) Перевод строки (LF, ASCII 10, \n).

Регулярное выражение для удаления пустых строк, которые являются / не являются действительно пустыми (то есть они имеют / не имеют пробелов): ^:b*$\n

Чтобы удалить двойные строки: ^:b*\n:b*\nзамените на:\n

* для Visual Studio 2013 и выше: *

^\s*$\n

и для двойных линий:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Смотрите обновления синтаксиса регулярных выражений для VS2012 и выше в ответе @ lennart ниже

Аля
источник
Работает как прелесть с очисткой XML-файла в Visual Studio 2015. Кто-нибудь знает, как создать ярлык для выполнения этого?
Лешек П
1
для Visual Studio 2012 и выше проверьте ответ ниже
Alaa
1
Есть ли способ для этого работать с автоматическим форматером?
Кайл Делани
19

В Visual Studio 2013 (версия 12.0.20623.01) я удалил пустые строки с помощью этого регулярного выражения. ^\r\nНа экране вы можете видеть совпадающие линии, обозначенные коричневыми квадратами.

Visual Studio 2013 заменяет пустые строки

surfmuggle
источник
Я тоже попробовал такой способ, но визуальная студия застряла на несколько минут, а затем заменила только 1 случай из нескольких сотен, которые у меня были! LOL :-D
BertuPG
17

Протестировано в VS 2012, чтобы обеспечить чистые переводы строк.

^\s*$\n 

НТН

Джо Джонстон
источник
2
это работает для меня в VS 2015, принятый ответ, к сожалению, нет
EdwardM
Работает и в VS 2013.
Джо Джонстон
2
Хорошо работает в VS 2017, принятого ответа нет.
Germstorm
Работает и в 2019 году
Джо Джонстон
17

Использование Visual Studio 2017 и выше

в текущем документе

использовать ярлык

  • Откройте Инструменты > Параметры или нажмите Alt+ T+O
  • Под вкладкой Окружающая среда > Клавиатура
  • Найдите « DeleteBlank » и выберитеEdit.DeleteBlankLines
  • Добавить новый ярлык, например Ctrl+ D, Ctrl+E
  • Назначить > ОК

выделите весь текст и нажмите на ярлык

введите описание изображения здесь

Анас Алвейш
источник
При этом удаляются только выбранные пустые строки или с текущей строки до следующей непустой строки. Это не для всего документа или проекта.
Jan
1
Попробуйте выбрать все, прежде чем запускать команду, тогда она будет работать.
Крис Морнесс
9

Чтобы удалить две или более соседних пустых строки с VS2012, используйте это:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n
PBZ
источник
Я искал решение заменить две пустые строки на одну. Меня устраивает. Спасибо!
Рикардо Франса
8

Я использую Visual Studio 2017, ни один из вышеперечисленных работал для меня, пока я не попробовал \n\r

шаги:

  1. Ctrl + H (открывает поиск и замену)
  2. Выберите использовать регулярное выражение (Alt + E)
  3. Войдите \n\rв поле «Найти ...»
  4. Нажмите заменить
tony09uk
источник
2

Установите CodeMaid и нажмите Ctrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D`, а также). Вы можете убрать больше файлов из Solution Explorer.

xmedeko
источник
1

В VS 2012 строка регулярного выражения, используемая для поиска и замены всех пустых строк, представляет собой ^ (? ([^ \ R \ n]) \ s) \ r? \ N

cmsmith81
источник
0

Ctrl+ K, Ctrl+ Dавтоматически форматирует текущий документ, и это удаляет ненужный пробел в вашем коде. Это помогает сохранить ваш код читабельным, если это то, что вы искали.

Маркус Каллендер
источник
Я ссылаюсь на мою проблему, пожалуйста, посмотрите, это выглядит, это то, что я искал. stackoverflow.com/questions/44747909/… .
Вивек Шукла
1
Это не удаляет двойные / избыточные пустые строки.
Jan