goland中删除空行需通过code cleanup配置blank lines规则(如设最大空行为1)或用replace in path正则^\s*$\n全局替换,gofmt等工具默认不处理空行。

GoLand 本身不提供“一键删除所有空行”的独立功能,但可以通过内置的代码格式化和结构化搜索替换高效完成,关键在于配置正确的格式化规则或使用正则替换。
用 Code Cleanup 配合自定义格式化规则清理空行
GoLand 的 Code Cleanup 功能可批量处理空行,但默认不启用——必须先在格式化设置中打开相关选项:
- 进入
Settings/Preferences → Editor → Code Style → Go - 切换到
Blank Lines标签页 - 重点调整:
Keep maximum blank lines in code设为1(保留最多 1 行空行);Keep maximum blank lines before import statements和after import statements同样设为1 - 勾选
Remove trailing blank lines(这个会删掉文件末尾多余空行) - 保存后,右键文件 →
Code Cleanup…→ 勾选Reformat code即可生效
注意:该方式不会“暴力清空所有空行”,而是按规则压缩——比如连续 5 行空行会被压成 1 行,符合 Go 社区常见风格(如 gofmt 兼容性更好)。
用 Replace in Path + 正则精准删除全部空行
如果目标是彻底移除所有空行(包括函数间、注释后等位置),推荐用 Replace in Path 配合正则表达式,更直接可控:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 快捷键
Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(macOS)打开全局替换 - 勾选
Regex模式 -
Find:输入^\s*$\n(匹配仅含空白符或完全为空的行 + 换行符) -
Replace:留空 - 范围选
Current File或指定目录,点击Replace All
⚠️ 风险提示:该正则会删除所有空行,包括结构分隔用途的空行(如函数之间、import 与代码之间),可能降低可读性。建议先 Ctrl+Z 撤回检查效果,或对单个文件试运行。
为什么不用 gopls 或 gofmt 自动处理?
gofmt 和 gopls(GoLand 默认语言服务器)**默认忽略空行数量**——它们只保证语法合法和缩进正确,不会增删空行。即使开启 go.formatTool = "gofmt",也不会触发空行清理。这是设计使然:Go 官方工具链将空行视为“风格选择”,交由编辑器或人工控制。所以依赖外部格式化工具来清空行,在 GoLand 中是无效路径。
真正要稳定清理空行,得靠 GoLand 自身的格式化策略或正则替换;而最容易被忽略的点是:Blank Lines 设置藏得深、且默认不压缩空行——很多人调了 Reformat Code 却没改这里,结果发现空行纹丝不动。










