【问题标题】:Visual Studio Code - delete all blank lines - regexVisual Studio Code - 删除所有空行 - 正则表达式
【发布时间】:2016-07-20 21:44:20
【问题描述】:

我花了一些时间试图弄清楚如何删除 Visual Studio Code 中的所有空白行,但我无法让它工作。请问有人知道怎么弄吗?

如果我在搜索字段中输入^$ 时搜索它,VSC 确实会找到空行(完全是空行,意味着没有空格),但是当我点击全部替换时它不会删除它们。它什么也不做:

对于带有空格的空白行^\s+$ 搜索有效,但不会删除它们。它的作用是用没有空格的空行替换它们:))

一定是我做错了什么。我只是不知道它是什么。有人知道吗?谢谢。

【问题讨论】:

  • 我在您打开的有关此问题的问题上添加了评论,但对于其他任何人,$ 实际上并不匹配换行符,它匹配换行符之前存在的零宽度标记。要替换新行,您需要使用 \n,但 VS Code 目前不支持多行正则表达式匹配 (#313)
  • 谢谢玛丽。看来我们得等一会儿了。
  • 在正则表达式模式下查找这个 ^$\n 并用空白替换也可以正常工作。快乐编码!!!

标签: regex visual-studio-code blank-line


【解决方案1】:

对于那些可能感兴趣的人 - 在 1.3.1 版中对我有用(并且在 1.33.1 中仍然适用)删除空白行我使用 ctrl+h(查找和替换)alt+r(使用正则表达式)

然后在查找框中:

\n\n

在替换框中:

\n

这应该使两个连续的行尾符号合二为一。

编辑:

如果您需要一次替换多个空行(超过两个),您可以在查找框中使用以下正则表达式:

\n+

如果您还需要用空格替换空行,则需要在查找框中使用以下正则表达式:

\n+\s*\n

VS 代码使用 javascript 正则表达式

【讨论】:

  • 按照这些思路,我使用^[\r\n]{3,}
  • 它正在工作。谢谢 :) 中间有很多 VSC 版本,但没关系。将 \n\n 替换为 \n 效果很好。
  • 还可以看看下面的@Dzumret 解决方案。在我的解决方案中,它只删除没有任何内容的行。他的解决方案删除了​​还有一些空白字符(空格、制表符)的行
  • 这个答案不适用所有情况,如果空行有空格怎么办
  • 太棒了!为了删除多个连续的空行,我将 \n+ 替换为 \n。也可以用空白替换 (^\s*\n)+
【解决方案2】:

这个正则表达式模式也有效:

^\s*$\n

然后 CTRL+Enter 替换所有行。

上述模式的解释:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

【讨论】:

  • 不确定,但只有这对我有用,与所有其他答案相比。解释得也很好。谢谢。
  • \n 放在锚点之外对我有用。然后 VSCode 允许将其替换为空(空白“替换为”字段)。
  • Ctrl+Enter 现在插入换行符而不是全部替换。
【解决方案3】:

Visual Studio Code 1.13.0 Linux Lite:

  • 点击 CTRL+H
  • 选择“使用正则表达式”
  • 查找框:^(\s)*$\n(根据需要输入多个结尾\n)
  • 替换框:空
  • 点击全部替换

空行不见了!

【讨论】:

    【解决方案4】:

    这是我的正则表达式,它捕获所有额外的新行和只包含空格、制表符等的空行

    \n\s*\n
    

    我用\n替换所有匹配项

    说明

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

    P.S :记得在搜索窗口中选择正则表达式选项!!

    【讨论】:

      【解决方案5】:

      尝试在 VS Code 的 Replace 对话框中使用 ^\s*\n -

      【讨论】:

        【解决方案6】:

        不,你做得对。

        我在这里得到相同的行为。

        我还尝试了另一个正则表达式:(\r?\n){2,} 但它似乎只适用于单行。

        也许有改变默认正则表达式行为的偏好,或者也许 VS 只是以这种方式构建(基于行)

        当然,从另一个文本编辑器中剪切粘贴并返回也没什么大不了的。

        【讨论】:

        • 这仅在我将所有 ^\s*$ 替换为空之后才对我有所帮助,然后我尝试了 (\r?\n){2,}
        【解决方案7】:

        我不了解你,但是记住很多命令对我来说是浪费时间!

        使用扩展名“Blank Line Organizer”,描述如下:

        此扩展将通过删除多个空白行来帮助您组织代码中的空白行。扩展仅从选定行中删除空白行(如果有),否则从整个文件中删除

        使用方法:查看扩展的说明,确实很好看!

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

        也就是说,文件保存后会自动清理!

        【讨论】:

        • 嗨@Jun!我使用的是 Sublime Text3,它解决了很多问题,而且更轻,并且有一些不错的功能。
        • 你在 Sublime Text3 中使用什么插件?我曾经使用Webstorm,它是内置的。
        • Html / CSS / JS 美化
        • 关于 'blankLine' 的注释 → 确保将您的语言添加到它将处理的语言 ID。例如添加"csharp", 来处理.csharp 文件
        【解决方案8】:

        我发现以下在 Visual Studio 中最适合我:

        替换: ^\n$ 和: <no value here>

        这将找到所有空行并将其清除。

        【讨论】:

          【解决方案9】:

          在我的情况下。 kobi7 解决方案(\r?\n){2,} 只对我有用, 我不得不稍作修改再次运行它以使其适用于单行(只是将 2 更改为 1)

          ^(\r?\n){1,}
          

          【讨论】:

            【解决方案10】:

            Code Maid 扩展是您所需要的。 您可以使用快捷键 Ctrl M + 空格键来清理您的文件,它将删除空行并格式化您的代码。您还可以配置有关格式和清理规则。 希望这有用。

            【讨论】:

            • 未找到(在 Manjaro Linux 上)。
            • 那是因为它是 Visual Studio 扩展而不是 Visual Studio Code 扩展。
            【解决方案11】:

            一个或多个换行符 (\n)+ 并替换为 \n

            【讨论】:

              【解决方案12】:

              我的版本是用空白清理空行:

              find:    (?:\s*$(\r?\n)){2,}
              replace: $1
              

              【讨论】:

                【解决方案13】:

                在 vscode 中安装扩展“删除空白行”

                【讨论】:

                  【解决方案14】:

                  正则表达式查找至少 2 个空行

                  \n\s*\n\s*\n
                  

                  【讨论】:

                    【解决方案15】:

                    首先删除空行中的所有空格Remove all blanks only 然后去掉所有空行,空行是2个或多个换行符Remove 2 or more occurrences of blank likes

                    【讨论】:

                      【解决方案16】:

                      替换:^\n$ 为:“空格”

                      【讨论】:

                      • 并删除文档中的每个空格?
                      【解决方案17】:

                      Windows 10、Visual Studio 2015

                      Ctrl + H

                      查找... -> ^\s*

                      全部替换

                      Ctrl + A

                      Ctrl + K + F

                      谢谢你的提问,我学到了一些新东西。

                      【讨论】:

                      • Visual Studio 2015 不是 Visual Studio Code。
                      猜你喜欢
                      • 2017-04-30
                      • 1970-01-01
                      • 2012-03-19
                      • 2014-01-29
                      • 2021-04-10
                      • 2022-09-30
                      • 2011-08-30
                      • 1970-01-01
                      • 2015-12-17
                      相关资源
                      最近更新 更多