<p>GoLand 中代码块注释默认且应使用 //,而非 / /;因 Go 官方规范限定 / / 仅用于包级说明或临时屏蔽大段代码,且 Ctrl + / 自动适配此规范,修改前缀需用 Live Templates 实现。</p>

GoLand 中代码块注释用 // 还是 /* */?默认就是 //
GoLand 对 Go 语言的代码块注释(即选中多行后按 Ctrl + /)默认使用行注释 //,不支持自动切换为 /* */ 风格——这不是 bug,而是 Go 官方规范和 IDE 的主动适配。Go 社区约定:函数/逻辑块内只用 //,/* */ 仅用于包级说明或临时屏蔽大段代码(且不能嵌套)。强行改成块注释反而会导致 go fmt 在保存时自动还原为多行 //,甚至触发 linter 报警。
如何让 Ctrl + / 注释行为符合团队规范?
关键不是改注释符号,而是统一缩进、空格和位置。GoLand 的注释行为由两处控制:
-
Settings → Editor → Code Style → Go → Code Generation中的Comment code选项决定是否启用快捷键注释(必须勾选) -
Settings → Editor → Code Style → Go → Tabs and Indents中的Comment at first column决定注释是否顶格(建议取消勾选,让注释对齐代码缩进) - 若团队要求注释前加空格(如
// foo而非//foo),需在Tabs and Indents → Continuation indent保持为4,并确保Use tab character未勾选(避免混用 tab/spaces 导致对齐错乱)
为什么有时 Ctrl + / 不生效或注释错位?
常见原因和对应动作:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 当前文件不是
.go后缀,或文件类型被误识别为Text:右下角点击文件类型标签 → 选择Go - 光标位于字符串或注释内部:GoLand 会拒绝注释已存在注释的行,需先移出再操作
- 选区跨了
func或if块的花括号边界:部分版本会对跨结构体的选区降级为纯文本注释(即只加//不缩进),此时应分段选中 - 启用了
Settings → Editor → General → Smart Keys → Comment code with line comment但被其他插件拦截(如某些 Markdown 插件):临时禁用插件验证
想自定义注释前缀(比如加 emoji 或项目标识)?别动快捷键
GoLand 不允许修改 Ctrl + / 的注释前缀,但你可以用 Live Templates 替代:
- 进
Settings → Editor → Live Templates → Go - 点
+→Live Template,Abbreviation 填cc,Template text 填:// ? $END$
- 点
Define→ 勾选Go,再点Edit variables→ 把END的 expression 设为cursor() - 之后在代码中敲
cc + Tab,就会插入带 emoji 的行注释,光标停在后面可直接输入
这种做法绕过快捷键限制,又不会干扰 go fmt,适合加调试标记或临时 TODO。

















