GoLand没有一键清除空行功能,因其设计主张由gofmt -s统一管理空行;可借助Run Anything调用sed命令临时清理(macOS/Linux),或用Live Template高亮空行手动处理,但推荐启用gofmt -s自动格式化。

GoLand 里没有“一键清除空行”的原生功能
GoLand 本身不提供菜单项或快捷键直接删掉所有空行,这不是遗漏,而是 JetBrains 的设计取向:空行属于格式细节,交由代码格式化工具(如 gofmt 或 goimports)统一管控,而非单独清理。强行删除空行可能破坏语义分组(比如函数间、逻辑块间的视觉间隔),反而降低可读性。
用 Run Anything + sed 快速批量删空行(macOS/Linux)
如果你确实需要临时清理(比如提交前精简 diff、生成文档片段),最轻量的方式是借助 GoLand 的 Run Anything(Ctrl+Double Shift)调用系统命令。前提是当前文件已保存,且你用的是类 Unix 系统:
- 打开目标文件,确保已保存(
Ctrl+S) - 按
Ctrl+Double Shift,输入:sed -i '' '/^$/d' $FilePath$(macOS)或sed -i '/^$/d' $FilePath$(Linux) - 回车执行——注意
$FilePath$是 GoLand 预定义变量,会自动替换为当前文件绝对路径
⚠️ 风险提示:该操作无撤销,且会删掉所有空行(包括函数体开头/结尾的空行)。别在未提交的主干代码上试。
用 Live Template 模拟“半自动”清理(跨平台)
更安全的做法是把空行清理变成“有确认步骤”的动作。你可以建一个 Live Template,触发后只高亮空行,让你手动删或保留:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 进入
Settings > Editor > Live Templates - 新建模板,缩写填
delblank,模板文本写:^$(正则模式,匹配行首到行尾为空) - 勾选
Enable live template in: Go,并设置适用范围为Everywhere - 应用后,在编辑器任意位置敲
delblank+Tab,光标会跳到第一个空行位置,按Delete或Ctrl+Y删除,再Ctrl+G跳到下一个
这不省力,但避免误伤。适合偶尔处理小文件,或想保留部分空行时用。
真正该做的:用 gofmt -s 统一格式,而不是“清空行”
多数人想删空行,其实是希望代码更紧凑。但 Go 社区约定是靠 gofmt -s(简化模式)来规范换行——它会删掉冗余空行,同时保留必要的分组空行(如函数之间、import 块与代码之间)。GoLand 默认就集成了 gofmt:
- 确保
Settings > Tools > File Watchers中启用了go fmt(或勾选Settings > Editor > Code Style > Go > Format on save) - 保存文件时自动运行
gofmt -s,效果比手动删空行更可靠、更符合 Go 风格 - 如果发现空行没被清理,大概率是这些空行被
gofmt认为“必要”,比如 struct 字段之间、方法定义之间——这时不该删,那是有意为之的可读性设计
空行不是垃圾,是代码呼吸的空间。与其找“一键清除”,不如搞清哪些空行该留、哪些该由 gofmt 处理——这才是 GoLand 里最省心也最不容易翻车的做法。

















