Visual Studio Code - 从代码中删除空行

58

我使用Visual Studio Code作为首选文本编辑器,但在格式方面遇到了问题。 我从一个文件中复制了代码并粘贴到另一个文件中,但是当我粘贴代码时,VSC在每行代码之间都插入了一个空行。

这是一个很大的文件,所以我希望有一种方法可以一次性识别所有的空行并将它们删除?

以下是我希望代码的外观:

<div>
  <h1></h1>
  <p></p>
</div>

然而,现在粘贴后它看起来像这样:

<div>

  <h1></h1>

  <p></p>

</div>

我已经在网上寻找了很久,但是没有找到直接的答案 :(

9个回答

159

按照以下步骤进行操作

  1. 在Windows中,按下 Ctrl+H (快速替换)。
  2. 点击“使用正则表达式”。
  3. 在“查找”中输入^$\n
  4. 将“替换为”留空。
  5. 点击“全部替换”。 所有的空白行都将被删除。

enter image description here

注:将“替换为”框留空。


2
找到指定的“^$ \n”。它运行得非常好! - Jeff Hu
我不知道为什么在</form>之后它不起作用,并且留下了1个空行。 - Tanaka
@Tanaka 或许 </form> 后面的那一行不是空白的,而是有一个空格、制表符或其他空白字符,这里描述了差异(链接:https://dev59.com/2FUL5IYBdhLWcg3wopSy#0CntnYgBc1ULPQZF14Au)。 - Jimmix
Ctrl H 删除了我的 Mac 上的一行。 - Snowcrash
使用Mac上的Command + Option + F,或从标题菜单中的Edit -> Replace进行替换。 - Deepu Reghunath
1
这对我有效。在$前面加4个空格。 - Kasthuri Shravankumar

40

您可以使用正则表达式。

  1. 在Visual Studio Code中打开您的代码
  2. 从“编辑”菜单中,选择“替换”或使用快捷键(Mac上是command+Option+F,Windows上是Ctrl+H
  3. 在查找框中输入^(\s)*$\n
  4. 将替换框留空
  5. 确保选中了“使用正则表达式”
  6. 选择“全部替换”按钮

进入图片描述

我参考了这个链接。它对我有用。


1
这与现有答案有何不同? - FloLie
2
太棒了,它对Mac有帮助 :) - Hamad
2
@FloLie 如果你的意思是与 ^$\n 不同,那么 ^$\n 只匹配除换行符之外没有其他字符的行。^(\s)*$\n 还匹配具有空格字符(在此处列出)的行。 - Jimmix
没有结果 - Snowcrash
1
@Snowcrash 确保你已经点击了正则表达式图标,如图所示。 - PaperinFlames

11

请使用以下插件

Remove empty lines
v0.0.11
Alexander

然后在设置中进行更改

Remove-empty-lines: Allowed Number Of Empty Lines
Number of allowed consecutive empty lines.
Set to 1

在Mac上

Command-Shift-P -> Remove empty lines : in Document

6
如果您想去除只包含以下字符的行:
  • 空格字符
  • 制表符
  • 回车符
  • 换行符
  • 垂直制表符
  • 分页符
那么请使用以下正则表达式:
^\s*$\n

在查找和替换框中按下 Ctrl+H 以打开它。

enter image description here

打开正则表达式模式 Alt+R enter image description here 将替换字段留空: enter image description here 使用 Ctrl+Alt+Enter 或单击来替换所有出现的内容:enter image description here 正则表达式模式 ^\s*$\n 不使用捕获和组(),因为它是多余的。
  • ^ - 匹配行的开头
  • \s - 匹配任何空白字符
  • * - \s 的数量运算符 = 匹配零个或多个
  • $ - 匹配行的结尾
  • \n - 匹配换行符

1
可能有助于解释这与使用相同正则表达式的先前答案不同的方式。 - Dave Newton
2
@DaveNewton 已添加解释。 - Jimmix
1
谢谢;似乎更好的表达方式是在之前的回答中作为评论,但无论如何。 - Dave Newton
1
@DaveNewton 对于冗长性,我创建了一个新答案,允许我列出所有与正则表达式匹配的空格字符。 - Jimmix

3
以下是关于如何逐步移除空白行的指示:
  1. 在 Visual Studio Code 中打开您的代码。
  2. 从“编辑”菜单中,选择“替换”,或使用快捷键(Mac 上为 command + Option + F,Windows 上为 Ctrl + H)。
  3. 在查找框中输入^(\s)*$\n
  4. 将替换框保留为空白。
  5. 请确保选择了“使用正则表达式”选项。
  6. 选择“全部替换”按钮。

1
如何删除所有行但保留一个空行。 - DragonFire

2

2
我在寻找解决方案时发现了这个问题。我不想使用正则表达式,而是使用多光标的不同方法删除文件中的空行。
1. 选择所需模式下的空格。 选择示例 2. 使用命令“选择查找匹配项的所有出现”:cmd + shift + L 然后您将在每个空行处拥有一个光标,可以将它们删除。 每个空行上的光标

1
屏幕右下角应该会显示 LF 或 CRLF 如果是 CRLF,当你粘贴代码时就会产生空白行。 将其更改为 LF 就可以解决问题了。


1
一个非常简单的解决方案是,在Windows上按下Crtl + F,然后在第一个框中输入\n\n,在替换框中输入\n,然后点击替换直到所有结果变为零。不要忘记选择正则表达式。

check this image


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接