命令面板(Ctrl+Shift+P)默认不保存历史,仅内存缓存、重启即清;所谓“旧命令”实为插件记录、Ctrl+P文件历史或查找框历史所致。

命令面板(Ctrl+Shift+P)本身不保存历史搜索记录,你看到的下拉列表只是当前会话中输入过的命令——关掉再开就没了。真正要清的,是 Ctrl+F / Ctrl+H 的查找历史,或者插件(如 FindInFilesEnhanced)额外存的词。
为什么命令面板里总出现旧命令?
这不是命令面板的历史,而是你误把 Ctrl+F 查找框或插件的搜索词当成了命令面板内容。Sublime 的命令面板(Ctrl+Shift+P)默认不落盘记录,只缓存在内存里,重启即空。如果你发现它“记得”很久以前输过的命令,大概率是以下情况之一:
- 装了插件(比如
CommandHistory或AdvancedNewFile),它自己写入了CommandHistory.sublime-settings等文件 - 你实际在用
Ctrl+P(Goto Anything),它的file_history字段藏在Session.sublime_session里,和命令面板无关 - 系统剪贴板或输入法联想干扰了视觉判断
怎么确认是不是命令面板真有历史?
最可靠的办法是干净启动:
- 彻底退出 Sublime Text(Windows 查任务管理器确认无
subl.exe;macOS 看菜单栏图标是否消失) - 不加载任何插件:启动时加
--safe-mode参数(终端运行subl --safe-mode) - 按
Ctrl+Shift+P,输入几个新命令,关闭面板,再呼出 - 如果下拉列表为空,说明原“历史”来自插件或会话残留
真有插件在记命令历史,怎么删?
目前没有主流插件默认持久化命令面板输入历史,但若你装过自定义插件或调试过 API,可能生成了类似 CommandHistory.sublime-settings 的文件。操作路径如下:
- 关掉 Sublime,确保后台进程退出
- 打开对应路径:
%APPDATA%\Sublime Text\Packages\User\(Windows)、~/Library/Application Support/Sublime Text/Packages/User/(macOS)、~/.config/sublime-text/Packages/User/(Linux) - 查找含
history的 JSON 文件,比如CommandHistory.sublime-settings、RecentCommands.sublime-settings - 用记事本或 VS Code 打开,清空
"history": []数组内容,保存为合法 JSON(不能有多余逗号,引号必须闭合)
注意:Session.sublime_session 里的 file_history 和 recent_files 不影响命令面板,别删错。
防复发:限制查找历史条数比清空更有效
即使你没装插件,Ctrl+F 历史也可能因 hot_exit 恢复而“重现”。真正一劳永逸的做法,是在用户设置里加两行:
"find_history_max_items": 15 "replace_history_max_items": 10
这个设置只对新增记录生效,所以得先清掉现有历史(删 Find.sublime-settings 或编辑它清空 "find_history": [])。数值设太小(比如 3)会导致刚输完就被踢掉,10~15 是实测平衡点。
容易被忽略的是:所有涉及 JSON 的操作,都必须用外部编辑器完成,且保存前务必检查括号配对和末尾逗号——Sublime 启动时读到非法 JSON 会卡死或静默失败。


















