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


152

Как убрать пустые строки в 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 заменяет пустые строки


Я тоже попробовал такой способ, но визуальная студия застряла на несколько минут, а затем заменила только 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

Я искал решение заменить две пустые строки на одну. Меня устраивает. Спасибо!
Рикардо Франса

8

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

шаги:

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


2

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


1

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


0

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


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

1
Это не удаляет двойные / избыточные пустые строки.
Jan
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.