从别人那儿拿了一份配置文件,两百多行里空行占了一半,翻起来眼睛花。想一次删干净,按住退格一个个按不现实。

正则替换一次清空行

Ctrl+H 打开替换面板,点查找框右边的星号图标启用正则。查找框填 ^\s*\n,替换框留空,点全部替换。这个式子匹配的是行首允许有空白的一整行连同换行,纯空行和只有空格的行都会被清掉。

只想删纯空行、保留带缩进的行,把式子缩成 ^\n 就行。替换前先小范围试一次,确认结果再全篇跑。

按了没反应,先检查正则图标有没有真的点亮。VS Code 里那个开关很小,面板调窄之后经常被漏掉。

只删行尾空格是另一回事

命令面板里搜「删除行尾空格」,整个文件一次处理完,行数不变。保存时也能自动触发,设置里搜 trim 能找到这个开关。

全删之后代码挤成一团

函数和函数之间一点间隔都没有,读起来更累。这种场景别全删,改成把连续空行压成一个:查找 ^\s*\n\s*\n,替换成单个 \n,多点几次,直到提示没有匹配。

压缩比删除安全,改动量小,也方便回头看哪几处结构被动了。

大文件别整篇替换

几千行的日志或者打包后的 JS,全篇跑正则容易卡住编辑器,撤销记录也会撑爆内存。分段选中再替换稳一些,命令行处理更快,读入、滤掉空白行、写回新文件,一条管道就够。

Get-Content in.txt | Where-Object { $_.Trim() -ne '' } | Set-Content out.txt

只想处理某一段,选中那段再按 Ctrl+H,把范围限制在选区内,别处不会被改到。

还有一种情况:文件看着空行特别多,其实是 CRLF 和 LF 混用,右下角能切换换行符,统一之后再删。改坏了 Ctrl+Z 能撤回来,但撤销历史有上限,动大文件前先存副本。删空行不难,难的是留住该有的结构。