189

How to remove empty lines in Visual Studio?

3
  • For Visual Studio Code Commented Feb 19, 2019 at 12:05
  • 3
    Is there an answer for this without using regular expression? Just by using a shortcut like CTRL-K-D which formats the document but forgets to remove double blank lines. Commented Apr 5, 2019 at 10:43
  • How can we do this automatically in vs code when we format document or as we type? similar to what code maid does on visual studio? Commented Jul 27, 2022 at 7:34

12 Answers 12

208

Since Visual Studio 2012 changed its regex syntax, the original answers by Ala translate into the following in VS 2012:

Remove single blank lines

Old:

^:b*$\n

New:

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

Visual Studio 2013 (thanks to BozoJoe and Joe Johnston):

^\s*$\n

Remove double blank lines

Old:

^:b*\n:b*\n

New:

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

Rolls right off your tongue.

Here is the conversion sheet from MSDN.

Sign up to request clarification or add additional context in comments.

7 Comments

BozoJoe's answer, for me, worked well in VS2012 also (Update 4)
^\s+$\n changed to ^\s*$\n allow for (no content) pure line feeds.
How can i make this automated, like working with CTRL+K+D?
Is this meant to work for strings or for code in the editor?
@KyleDelaney Primarily for code in the editor. I don't know if the syntax is the same for strings (if you mean the Regex.* classes)
|
157

It's very useful especially if you want to arrange or compare codes, thanks to the people who answer this question, I've got the answer from here and would like to share it with Stackoverflow:

Visual Studio (Visual Studio Code) has the ability to delete empty lines in replace operation using regular expressions.

  • Click Ctrl-H (quick replace)

  • Tick "Use Regular Expressions"

  • In Find specify ^$\n

  • In Replace box delete everything.

  • Click "Replace All"

All empty lines will be deleted.

Regular expression for empty line consists of

Beginning of line ^

End of line $

Line break \n

Note that normally in Windows an end of line indicated by 2 characters - Carriage Return (CR, ASCII 13, \r) Line Feed (LF, ASCII 10, \n).

A regex to remove blank lines that are/aren't really blank (i.e. they do/don't have spaces): ^:b*$\n

To remove double lines: ^:b*\n:b*\n replace with: \n

*** for Visual Studio 2013 and above:***

^\s*$\n

and for double lines:

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

See the regular expression syntax updates for VS2012 and above in @lennart's answer below

3 Comments

Works like a charm with cleaning XML file in Visual Studio 2015. Anyone know how to make a shortcut to execute this?
Is there a way for this to work with the automatic formatter?
^\s*$\n worked fine for me. :)
35

Using Visual Studio 2017 and above

in Current Document

use shortcut

  • Open Tools > Options or press Alt + T + O
  • Under Environment tab > Keyboard
  • Search for "DeleteBlank" and select Edit.DeleteBlankLines
  • Add a new shortcut for example Ctrl+D,Ctrl+E
  • Assign > OK

select all text and hit the shortcut

enter image description here

3 Comments

This only delete selected blank line(s) or from current line till the next non-blank line. It's not for the whole document or project.
Try a select all before running the command, then it'll work.
You should choose not used shortcut. I took Ctrl + Shift + Alt + D
20

Tested in VS 2012 to allow for pure line feeds.

^\s*$\n 

hth

5 Comments

this works for me in VS 2015, the accepted answer did not unfortunately
Works in VS 2013 as well.
Works well in VS 2017, the accepted answer does not.
Works in 2019 too
Works in VS2022 Note: a trailing space was treated as part of the pattern. be sure to trim
19

In Visual Studio 2013 (Version 12.0.20623.01) i removed empty lines with this regular expression ^\r\n In the screen you can see the matched lines indicated by the brown squares.

Visual Studio 2013 replace empty lines

1 Comment

I also tried such way, but visual studio stuck frozen for some minutes and then replaced only 1 occurrence of several hundred I have! lol :-D
12

VS 2022 and 2019

  1. Open the replace box: Ctrl + H
  2. Turn on regular expressions: Alt + E
  3. Find: ^\s*$\n
  4. Replace: (leave empty)
  5. Replace All: Alt + A
  6. Turn off regular expression: Alt + E
  7. Hide the replace box: Esc
  8. Format the document: Ctrl + K and then Ctrl + D

3 Comments

also works in vs2022 :D
Find: ^\s$ is sufficient as this translates into, only whitespace characters between the beginning and the end of the line.
It works with Visual Studio 2022 Enterprise edition, I applied with 41.000 lines of code of DBContext. Nice answer!
10

I'm using visual studio 2017, non of the above worked for me until I tried \n\r

Steps:

  1. Ctrl + H (opens find and replace)
  2. Select use regular expression (Alt + E)
  3. Enter \n\r into the "Find..." input
  4. Press replace

Comments

9

To remove two or more adjacent empty rows with VS2012 use this:

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

1 Comment

I was looking for a solution to replace two empty lines into just one. It works for me. Thanks!
9

Install CodeMaid and hit Ctrl+M, Space to clean up the code. (It formats the code, like Format Document Ctrl+E, D, as well). You can clean up more files from Solution Explorer.

Comments

1

In VS 2012, the regex string to use to find and replace all blank lines is ^(?([^\r\n])\s)\r?\n

Comments

0

in VS2019 I just used ^..$ since none of the other answer actually worked.

Comments

-3

Ctrl + K, Ctrl+D auto formats the current document and that removes unnecessary space in your code. It helps keep your code readable if that what you were looking for.

2 Comments

i am referencing my issue , please look ,it looking ,this is something i was looking . stackoverflow.com/questions/44747909/….
This doesn't remove double/redeundant empty lines.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.