goland 重构预览窗口不保存勾选项是刻意设计,因上下文强依赖代码状态;仅全局开关(如预览窗口开启、search in comments and strings)持久生效,细粒度选项仅会话级记忆。

GoLand 重构预览窗口默认不保存设置,每次都要手动勾选
GoLand 的重构操作(如 Rename、Extract Function、Move)弹出的预览对话框,默认不会记住你上次是否勾选了 Preview changes 或 Search in comments and strings 等选项。这不是 Bug,而是 JetBrains 的设计逻辑:预览行为属于「一次性安全确认」,而非用户偏好设置。
真正能持久生效的只有全局重构策略开关
虽然预览窗口本身不记选项,但 GoLand 提供了两个关键配置项,会影响所有后续重构的默认行为:
-
Settings / Preferences → Editor → General → Refactorings → Show refactoring preview window:关闭此项后,所有重构将跳过预览直接执行(⚠️高危,不推荐) -
Settings / Preferences → Editor → General → Refactorings → Search for references in comments and strings:开启后,所有支持引用搜索的重构(如Rename)默认启用该选项,无需每次勾选
注意:Search in comments and strings 是少数几个有全局开关的子选项;而像 Include non-project files 或 Preview usages only 这类细粒度控制,依然只在当次预览中有效。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
重构时快速复用常用预览组合的实操技巧
与其依赖“记忆设置”,不如建立可重复的操作节奏:
- 执行重构前,先按
Ctrl+Shift+Alt+T(Windows/Linux)或Cmd+Shift+Alt+T(macOS)呼出重构菜单,选中目标操作(如Rename),此时焦点已在输入框,立刻按Tab跳到Preview changes复选框,空格切换 —— 比鼠标快且确定 - 对高频重构(如重命名变量),可右键选中后直接按
Shift+F6,它默认带预览;若发现没弹窗,说明你之前关过全局预览开关,需回设置里打开 - 若误操作跳过了预览,别急着
Ctrl+Z(重构不可撤回!),立即看右下角通知栏是否有Refactoring completed提示,点开它能查看变更摘要,部分场景可手动还原
为什么 GoLand 不保存预览里的勾选项?
根本原因在于重构上下文强依赖当前代码状态:同一函数在不同文件中被调用的位置、注释内容、字符串字面量是否巧合匹配,都会影响 Search in comments and strings 是否合理。硬性记住上次选择,反而容易在新场景下造成误替换。所以 JetBrains 把决策权留在每次操作前 —— 它不是疏忽,是刻意为之的安全冗余。
真正需要留意的是:一旦你在某个重构中勾选了 Include non-project files,而项目外有同名 GOPATH 包,GoLand 会真实修改那些文件,且不会二次警告。这个动作没有撤销,也没有全局开关控制,默认就是关闭的,但只要勾过一次,下次进预览它仍会保持勾选状态(仅限本次 IDE 会话)。关掉 IDE 再重开,又恢复默认未勾选 —— 这个“会话级记忆”最容易让人误以为是 bug。










