ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Cursor settings.json 配置指南:从VSCode无缝迁移与调优

Cursor settings.json 配置指南:从VSCode无缝迁移与调优 先交代一个很多刚入坑的朋友都会问我的问题从 VSCode 切到 Cursor 之后我最常用的一堆编辑器配置到底还要不要重新配一遍答案是不用。你在 VSCode 里攒下的那些 settings.json 设置、快捷键绑定的习惯、代码片段哪怕是界面主题和图标主题到 Cursor 里几乎都能无缝接上。因为 Cursor 本身就是基于 VSCode 源码二次开发的 AI 编辑器它保留了 VSCode 的渲染内核和插件体系同时换掉/叠加了大脑——把臃肿的通用编辑器和一套 AI 辅助能力深度绑定。也就是说你在 VSCode 里练出来的 muscle memory迁移到 Cursor 之后依然成立配置文件也照样认得。这篇文章就专门聊 settings.json它的生效机制、核心配置项、可以直接搬走抄作业的模板以及我实际迁移配置时踩过的坑。不管你是刚装上 Cursor 想顺手汉化一下、还是想把它配成顺手到能替代 VSCode 的日常主力编辑器这篇都适合你。1. 先搞清楚继承关系Cursor 为什么能直接吃 VSCode 的配置1.1 同一个编辑内核AI 是叠加层我第一次用 Cursor 的时候也疑惑过它不是AI 编辑器吗怎么打开设置面板和 VSCode 长得一模一样后来查了项目背景逻辑就通了。Cursor 使用了 VSCode 的分支作为底层编辑器所以 UI 的骨架、命令面板、设置系统、扩展机制、终端面板全部和 VSCode 保持同一套设计语言。官方在设置页里甚至保留了Open Keyboard Shortcuts (JSON)这种入口打开后就是对着一个以keybindings.json结尾的文件编辑跟 VSCode 没有任何区别。这就带来一个很实用的好处你不需要从零理解一套新配置体系。网上搜到的 VSCode 配置教程比如editor.fontSize、editor.tabSize、files.autoSave在 Cursor 里全部适用。反过来也一样你在 Cursor 里调好的东西切回 VSCode 也是通的——两边读的都是同一套配置模型。我自己甚至会把同一份 settings.json 通过 Git 仓库管理换来换去都不用重新调。但要注意Cursor 并不是原封不动继承了所有 VSCode 配置它在 AI 相关模块上做了自己的定制比如 Tab 键补全、行内编辑CmdI / CtrlI、AI 对话窗口、Composer 的保存路径等。这些功能有一部分在 UI 里能调有一部分则仍然通过 settings.json 里的扩展配置来控制。说白了VSCode 的配置是基础层Cursor 自己的 AI 配置是增强层两层叠加在一起就成了你手上这份配置文件。1.2 配置生效顺序到底听谁的用久了你会发现有些配置明明改在 settings.json 里了界面却没有任何变化。这时候大概率是配置生效顺序的问题。VSCode 系编辑器的配置来源一共有好几级默认配置Internal Defaults、用户配置User Settings、远程/工作区配置Remote / Workspace Settings、文件夹级配置Folder Settings。优先级从低到高后出现的覆盖先出现的。放到 Cursor 的具体场景里最容易踩的是这三种情况你改了用户配置但当前项目里有.vscode/settings.json它会覆盖用户配置。你用了 Remote SSH / Remote Container 之类的远程开发远程机器上的用户配置会盖掉本机的同名配置。你的某个插件也在 settings.json 里写了自己的默认值比如格式化工具、代码整理工具它同样可能覆盖你手动写的相关项。所以排查思路很简单如果某个配置改了没反应先按下CmdShiftPWindows 是CtrlShiftP搜索 Preferences: Open User Settings (JSON)打开用户级配置再去项目目录下看有没有.vscode/settings.json在篡权。两种配置文件叠加时优先看项目级的因为它的优先级最高。1.3 打开配置文件的三种最快姿势不少新手还在菜单里翻很久才找到设置入口这里我直接给三条最快路径命令面板CmdShiftP/CtrlShiftP输入 settings json选 Preferences: Open User Settings (JSON)直接跳到 JSON 编辑视图。快捷键Cmd,/Ctrl,打开设置 UI然后在右上角有一个打开设置(JSON) 的图标点一下就是 JSON 视图。底部状态栏如果你把window.menuBarVisibility设成了compact可以直接从菜单栏的 Code 或 文件 里找到首选项 - 设置路径一样能到。我个人的习惯是永远用命令面板因为不用离开键盘。你要是记不住快捷键直接在命令面板敲 settings 也能搜到这个动作在配置调优的日子里基本每天都会用。2. settings.json 核心配置逐项拆解2.1 每天都要碰的编辑器体验项先说最容易影响日常编码愉悦度的几项配置。很多人一开始舍不得动默认配置其实这几个改完之后手感会完全不同。字体和字号是第一位。Cursor 默认的字体在某些屏幕上偏小写大段代码时眼睛累。我常用的是Fira Code或JetBrains Mono配合Editor: Font Ligatures打开连字效果{ editor.fontFamily: JetBrains Mono, Fira Code, Menlo, Monaco, Courier New, monospace, editor.fontLigatures: true, editor.fontSize: 14, editor.lineHeight: 24 }lineHeight建议和字号配合着调行高太小代码挤成一团太大会让一屏能看到的内容变少。我试过 14 号字配 22-26 的行高观感都比较舒服。这时我顺便建议关闭 minimap右侧缩略图它除了占空间和干扰视觉参考对大屏没什么实际帮助{ editor.minimap.enabled: false, editor.renderWhitespace: none, editor.smoothScrolling: true, editor.cursorBlinking: smooth, editor.cursorSmoothCaretAnimation: on }缩进和括号高亮是另一组容易被忽略的配置。实际编码中嵌套层级多了以后光标很容易迷路{ editor.tabSize: 2, editor.insertSpaces: true, editor.bracketPairColorization.enabled: true, editor.guides.bracketPairs: active, editor.guides.highlightActiveBracketPair: true }bracketPairColorization让不同层级的括号用不同颜色显示配合缩进辅助线读代码的指向性会清晰很多。尤其写 JSX、嵌套高阶函数、或者一大段 Python 列表推导式时这组配置能明显降低找错配对的概率。2.2 保存、格式化、自动修复的配合方式格式化和自动保存是我觉得最能提升从手动操作里解放出来的一组配置。很多人反复切换格式化一下再提交其实完全可以让编辑器接管大部分工作。{ editor.formatOnPaste: true, editor.formatOnSave: true, editor.formatOnType: true, files.autoSave: afterDelay, files.autoSaveDelay: 1000, editor.codeActionsOnSave: { source.fixAll: explicit, source.organizeImports: explicit } }几个关键点说一下formatOnPaste和formatOnType我在实际项目里是关闭的因为粘贴大段代码时如果自动格式化改动范围会很不可控你粘贴进来的代码如果本来就带一点缩进瑕疵保存时统一处理反而更可控。codeActionsOnSave里的source.organizeImports会自动整理 import 顺序这个对整理依赖关系很有用但注意它偶尔会打乱某些 lint 规则比如 import/order 的配置如果和它不一致会出现保存一次它给你倒腾一遍的鬼畜现象。这里引用我的经验如果你同时装了 Prettier 和某个语言的 formatter一定要想清楚谁是默认格式化器。Cursor 会自动识别你装了哪个插件然后建议你指定默认。我在 settings.json 里是这样处理的{ editor.defaultFormatter: esbenp.prettier-vscode, [python]: { editor.defaultFormatter: ms-python.black-formatter }, [cpp]: { editor.defaultFormatter: ms-vscode.cpptools } }[python]、[cpp]这种按语言分组的写法是 settings.json 里非常实用的特性。它允许你在同一份配置文件里针对不同语言设置不同行为而不是一刀切。对于我这种日常混写 Python 和 C 的人来说这个能力几乎是必需的。2.3 文件关联与多语言环境切换文件关联的坑比较隐蔽因为平时不容易察觉一旦项目里出现同名不同后缀的文件时就开始捣乱了。比如.m文件在 Xcode 项目里是 Objective-C在 MATLAB 里是 M 文件在 iOS 开发项目里又可能是并行的源文件。Cursor 默认不认识这些需要你在files.associations里手动声明{ files.associations: { *.c: c, *.h: c, *.cpp: cpp, *.hpp: cpp, *.ino: cpp, *.vue: html, *.svelte: html } }我为什么要强调这块因为很多刚从 VSCode 转过来的朋友发现我装了 C 语言插件为什么写.c文件还是没高亮大概率就是文件关联没配对。类似地如果你用 PlatformIO 写 ESP32platformio.ini会被识别成 INI 文件默认高亮还凑合但.ino后缀经常被识别成未知类型导致一堆提示缺失。给.ino映射到cpp后Arduino/ESP32 的代码补全一下子正常了配合 PlatformIO 扩展在 Cursor 里开发微控制器项目是完全可行的。另外语言扩展的安装路径也很重要。Cursor 用的扩展市场虽然能搜到大多数 VSCode 插件但有些插件会因为你没有装对应的 SDK 而提示缺少依赖。我自己的做法是先装三个基础语言包——Python、C/C、CLang 或 MS C tools再考虑 ESLint、Markdown 这类通用插件。2.4 终端、搜索、Git 这些偏门但好用的配置终端可能是最容易被忽略的一块。Cursor 内置终端实际上继承了你系统终端的 shell如果terminal.integrated.defaultProfile.windows没有配置Windows 上可能会默认到 PowerShell 或 cmd导致一些 shell alias 不生效。我是这样配的{ terminal.integrated.profiles.windows: { Git Bash: { path: C:\\Program Files\\Git\\bin\\bash.exe }, PowerShell: { path: powershell.exe } }, terminal.integrated.defaultProfile.windows: Git Bash, terminal.integrated.fontSize: 13, terminal.integrated.cursorBlinking: true }搜索和 Git 的几个配置也很实用{ search.exclude: { **/node_modules: true, **/dist: true, **/build: true, **/.git: true }, git.enableSmartCommit: true, git.autofetch: true, diffEditor.ignoreTrimWhitespace: false, diffEditor.wordWrap: off }search.exclude的价值在于全局搜索时不再被node_modules和编译产物刷屏。git.enableSmartCommit开启后暂存后提交就不用再区分stage和commit两步历史记录和暂存区都能保持整洁。diffEditor.ignoreTrimWhitespace改成false则是为了防止 Git diff 里明明只改了一行却一堆全红全绿的幻觉。3. 一份可以直接抄作业的完整配置模板3.1 全量模板代码下面的模板是我在自己的主力开发机上跑了好几个月的配置覆盖了 Python、C、前端、Markdown 写作、ESP32/PlatformIO 开发等场景。拿到手改一下字体路径和defaultFormatter就能用{ editor.fontFamily: JetBrains Mono, Fira Code, Menlo, Monaco, Courier New, monospace, editor.fontLigatures: true, editor.fontSize: 14, editor.lineHeight: 24, editor.tabSize: 2, editor.insertSpaces: true, editor.scrollBeyondLastLine: false, editor.smoothScrolling: true, editor.cursorSmoothCaretAnimation: on, editor.minimap.enabled: false, editor.renderWhitespace: none, editor.bracketPairColorization.enabled: true, editor.guides.bracketPairs: active, editor.guides.highlightActiveBracketPair: true, editor.formatOnPaste: false, editor.formatOnSave: true, editor.formatOnType: false, editor.defaultFormatter: esbenp.prettier-vscode, editor.codeActionsOnSave: { source.fixAll: explicit, source.organizeImports: explicit }, editor.suggestSelection: first, editor.unicodeHighlight.ambiguousCharacters: true, files.autoSave: afterDelay, files.autoSaveDelay: 1000, files.eol: \n, files.insertFinalNewline: true, files.associations: { *.c: c, *.h: c, *.cpp: cpp, *.hpp: cpp, *.ino: cpp, *.vue: html, *.svelte: html }, workbench.colorTheme: One Dark Pro, workbench.iconTheme: material-icon-theme, workbench.startupEditor: none, window.zoomLevel: 0, terminal.integrated.fontSize: 13, terminal.integrated.cursorBlinking: true, terminal.integrated.defaultProfile.windows: Git Bash, terminal.integrated.profiles.windows: { Git Bash: { path: C:\\Program Files\\Git\\bin\\bash.exe }, PowerShell: { path: powershell.exe } }, search.exclude: { **/node_modules: true, **/dist: true, **/build: true, **/.git: true }, git.enableSmartCommit: true, git.autofetch: true, git.confirmSync: false, git.suggestSmartCommit: false, diffEditor.ignoreTrimWhitespace: false, [python]: { editor.defaultFormatter: ms-python.black-formatter, editor.tabSize: 4 }, [cpp]: { editor.defaultFormatter: ms-vscode.cpptools }, [json]: { editor.defaultFormatter: vscode.json-language-features }, [markdown]: { editor.wordWrap: on, editor.quickSuggestions: { comments: off, strings: on, other: on } }, [html]: { editor.defaultFormatter: vscode.html-language-features }, emmet.includeLanguages: { django-html: html, javascriptreact: html, typescriptreact: html }, emmet.triggerExpansionOnTab: true, files.exclude: { **/__pycache__: true, **/.pytest_cache: true }, python.venvPath: venv, python.analysis.typeCheckingMode: basic, cSpell.userWords: [cursor, vscode, settings, json] }这里我说几个高频配置的用途避免你抄完不知道它是干嘛的scrollBeyondLastLine: false文件滚到底部就停不会再往下滚到一片空白写代码时视觉边界更清晰。files.eol: \n统一换行符为 LF能避免 Windows 和 macOS/Linux 之间协作时 Git 警告CRLF will be replaced by LF的问题。files.exclude里的__pycache__Python 项目中最烦的中产物让它们在文件树里直接消失眼不见心不烦。python.analysis.typeCheckingMode: basic让 Python 的静态检查只做基础类型检查不用打开strict模式否则第三方库里一堆类型标注缺漏会刷屏。3.2 按语言场景差异化配置上面模板已经体现了按语言分组的用法这里再展开一下。很多人以为 settings.json 只能设全局其实它支持把配置写进[python]、[cpp]、[markdown]这类语言作用域里实现同一个编辑器、不同语言服从不同规则。以我常用的几组为例Python 工作组[python]: { editor.formatOnSave: true, editor.defaultFormatter: ms-python.black-formatter, editor.tabSize: 4, editor.codeActionsOnSave: { source.organizeImports.ruff: explicit } }Python 的 PEP8 约定是 4 空格缩进而前端普遍是 2 空格用全局tabSize一定会有一个语言不舒服。分组配置能直接解决。前端工作组JS/TS/React[javascript]: { editor.formatOnSave: true, editor.defaultFormatter: esbenp.prettier-vscode }, [typescript]: { editor.formatOnSave: true, editor.defaultFormatter: esbenp.prettier-vscode }, [javascriptreact]: { editor.formatOnSave: true, editor.defaultFormatter: esbenp.prettier-vscode }C / ESP32 工作组[cpp]: { editor.defaultFormatter: ms-vscode.cpptools, editor.tabSize: 4 }, [c]: { editor.defaultFormatter: ms-vscode.cpptools, editor.tabSize: 4 }Markdown 写作组[markdown]: { editor.wordWrap: on, editor.formatOnSave: false, editor.quickSuggestions: { comments: off, strings: on, other: on } }这里有个很关键的设计思路editor.wordWrap: on对 Markdown 非常好用但对代码就是反效果所以这个东西绝不能写进全局配置必须放进语言分组里。3.3 Cursor 的 AI 行为配置走哪条路很多人以为 Cursor 的 AI 设置也在 settings.json 里实际上打开设置 UI 你会看到AI 相关的开关分布在Settings的 AI 区域和Features区域比如AI Chat、Composer、Tab Completion、Codebase Indexing等等。这些开关改动后写回的还是 settings.json但它们的键名通常是以cursor.开头不会出现在 VSCode 原版配置的文档里。我实际用过比较有用的几类Tab 补全如果想调整按下 Tab 接受补全后是否还要Enter确认可以把editor.suggestSelection设置成first让光标默认停靠第一个建议项配合 Tab 键直接接受。这在 Cursor 的 AI 代码补全里体验更顺滑。Inline Edit行内编辑Cursor 的CmdI/CtrlI行内编辑结果可以直接通过 Tab 接受、Esc 取消这个行为本身不需要额外配置但如果你的键位和 VSCode 的某个快捷键冲突记得去keybindings.json里改。我自己就把CmdI从原来的展开/收起侧边栏改绑了因为行内编辑使用的频率远高于侧边栏切换。Composer 管理Composer 的自动执行、是否自动保存到项目里的 composer 文件夹都有对应的开关。官方虽然在 UI 上做了入口但如果你想在团队内统一这些配置完全可以把它写进项目级的.vscode/settings.json里让每个克隆项目的人一致。注意这些键名会在不同 Cursor 版本之间变动升级后偶尔失效属于正常现象。所以关于 Cursor 的 AI 专属设置我的结论是UI 能调的就用 UIsettings.json 里真正需要手动写的大多是与 AI 补全动作相配合的编辑器行为比如editor.suggestSelection、editor.inlineSuggest.enabled、editor.quickSuggestions这些。把 AI 配置纯粹地理解为一个插件设置能避免你翻半天设置找不到入口的焦虑。4. 配置迁移、汉化和排错真实踩坑记录4.1 配置不生效的排查顺序配置不生效是最常见的求助帖主题但其实排查链路很短按顺序走完基本能解决。第一步确认你改了哪一层配置。用户配置是全局的项目配置会覆盖全局优先级从低到高是默认值 用户配置 远程用户配置 工作区配置 文件夹配置。你如果在用户配置里设了某个值但项目里有一个.vscode/settings.json也设了同一个值那生效的必然是项目里的。这种情况在团队项目里尤其常见某个协作者把统一的 format 配置推进了仓库你本地再怎么改用户配置也被压着。第二步检查拼写和值的合法性。settings.json 里一旦写了多余的逗号或者非法字符整个文件都会失效Cursor 会在右下角弹一个 JSON 解析错误。别在那里靠肉眼找直接在文件里搜索能快速定位或者把内容复制到编辑器右上角的格式化里跑一遍 JSON 工具。第三步看插件是否覆盖了你的设置。比如你把editor.formatOnSave设为true但某个插件运行时偷偷改回false或者你装了多个 formatter它们之间没有指定默认值保存时就可能什么也不做。这时可以打开命令面板执行 Developer: Inspect Editor Tokens and Scopes 排查或者干脆逐个禁用插件二分定位。一个非常实用的小技巧用命令面板执行 Preferences: Open Settings (UI)然后点击右上角的{}切换到 JSON 视图左边 UI 设置里的搜索框会实时过滤你当前生效的值。哪个值没按你预期生效可以直接在这个搜索框里搜它会告诉你当前值是哪一层提供的。4.2 另一台电脑怎么快速迁移配置换到新电脑、或者公司家里两台机器怎么让配置保持一致我踩过不少坑最后稳定下来的方案是这套三层同步法第一层核心的 settings.json、keybindings.json 和代码片段放进一个 Git 仓库仓库地址放在自己的 GitHub 私有仓里。每次变更配置就提交一次。这样换机时只需 clone复制到对应目录一分钟恢复大部分环境。第二层扩展列表备份。用命令面板执行Extensions: Show Installed Extensions之后导出到文本文件有点繁琐。更快的办法是直接记住几个必备扩展我再提供一份清单Chinese (Simplified) 中文语言包、Material Icon Theme、One Dark Pro、Prettier、ESLint、Python、C/C、Clang-Format、Code Spell Checker、Markdown All in One、GitLens、Git History。换机时在扩展商店里搜这几个名字逐个安装比从备份文件里恢复更稳因为扩展市场偶尔会调整 ID旧 ID 装了也不一定生效。第三层如果只在一台机器上做临时调整用 Settings Sync 类的扩展也可以但我在实际使用中发现那类扩展偶尔会同步到插件缓存导致异常最后还是回到 Git 方案。至少 Git 方案出了问题可以回滚。4.3 界面汉化与语言包的正确姿势Cursor 怎么设置中文这个话题的热度一直挺高其实方法很简单打开扩展商店左侧扩展图标搜索Chinese (Simplified)安装第一个由 Microsoft 官方发布的中文语言包然后按CmdShiftP/CtrlShiftP输入Configure Display Language选择zh-cn最后重启 Cursor。有两点我想特别提醒第一重启后如果界面仍显示英文检查右下角是否弹出了更改语言并重新启动的按钮直接点它不要自己杀进程。第二如果是工作区里覆盖了某些 UI 相关的配置比如workbench.locale它也可能导致中文包不生效。这个键一般不会出现在用户配置里但如果谁把它写进了.vscode/settings.json配置优先级会压过用户选择。另外汉化不是必须的。我认识很多朋友因为默认英文界面就放弃了其实对开发工作影响很小。但如果你刚入门看到配置界面全英文容易焦虑那装语言包完全没问题它不会拖慢编辑器性能。4.4 容易搞错的配置项清单我整理了一张配置项易错清单都是我或身边同事实际踩过的配置项常见错误写法正确作用说明editor.tabSize以为设成 4 后所有语言都是 4 空格它只影响缩进计算很多语言的 formatter 会覆盖它editor.insertSpaces设成false后文件里出现混合缩进建议保持true配合.editorconfig使用files.autoSave设成onWindowChange以为切换窗口才保存值域是off、afterDelay、onFocusChange、onWindowChange并非任意字符串editor.defaultFormatter忘了给每个语言分组指定默认值多个格式化器存在时不指定就是随机打架files.associations给.h映射成c后C 项目里.h篇被识别成 C这是历史包袱.h在纯 C 和 C 项目里有歧义你必须在分组或关联里明确意图terminal.integrated.defaultProfile.windows路径写错导致终端打不开不同机器 Git Bash 的安装路径不同先跑where bash确认search.exclude只设了node_modules没排除.git全局搜索.git里的对象会搜出一堆二进制乱码editor.unicodeHighlight.ambiguousCharacters默认关闭打开后能高亮全角/半角混淆字符对中文环境特别重要这张清单不是全部但基本覆盖了我处理过的 80% 配置问题。如果你碰到保存时格式化失效搜索太慢终端突然打不开这类问题先来这张表对照一遍大概率能定位到源头。5. 把 settings.json 玩出花工作流延伸配置5.1 同一份配置管理多套模板settings.json 本身不支持条件加载或模板切换但你可以借助 Git 分支或者文件复制实现多套配置切换。比如在我做前端项目时希望默认tabSize是 2、formatOnSave 开做 Python 项目时希望默认tabSize是 4、black作为默认格式化器。虽然按语言分组能解决大部分冲突但有些工具链和插件默认设置是全局的还是能在项目之间引起混乱。我的做法很简单在电脑上维护一个cursor-config-templates目录里面放几个完整版本base.json所有项目通用的基础配置。python-heavy.json带上 Python 相关的插件和分组配置。frontend-heavy.json带上 ESLint、Prettier、ESLint 修复、自动整理 import 等前端配置。cpp-embedded.json带上 PlatformIO、C/C 编译路径、宏高亮。换项目时先 copy base再按需 merge 某一套 heavy 版的内容。两分钟搞定而且你可以随时 diff 出哪部分配置是项目特有的避免全局污染。这个方法说起来土但比任何配置管理插件都稳。5.2 常用代码片段配合 AI 使用很多人忽略了 settings.json 旁边的snippets目录它其实和 Cursor 的 AI 补全能力是相辅相成的。AI 补全更适合生成通用的业务逻辑或模板代码但团队内部约定好的固定写法比如日志格式、API 请求封装、错误处理块交给细粒度的代码片段更可控。代码片段的写法如下放在~/Library/Application Support/Cursor/User/snippets/下的xxx.code-snippets文件里{ Log with context: { scope: javascript,typescript,python, prefix: logctx, body: [ console.log(${1:context}, ${2:value}); ], description: 输出带上下文的日志 } }然后在编辑器里输入logctx再按 Tab就能展开成console.log(context, value)。对 Python 可以换成print(f{context}, {value})。这类片段一旦积累起来你会发现日常写代码已经不太需要去搜索引擎翻怎么写日志了。配合 Cursor 的 Tab 补全判断逻辑非常顺滑我先输前缀展开片段再让 AI 自动填充参数整个流程比纯手打快很多。注意一行Cursor 自己也有一些内置的代码生成能力但它生成的代码质量取决于上下文而代码片段是确定性输出适合某些内容必须长这样的场景。两者是互补不是替代。5.3 几个被忽略的高性价比配置最后分享几个我用了很久、但很少看到别人提到的配置它们不属于必配项但性价比极高。第一editor.unicodeHighlight.ambiguousCharacters。中文环境里很容易混入全角空格或者相似的全角括号默认不提示一行代码可能肉眼看不出来报错。开启后歧义字符会被高亮出来省去了好多次怎么就是报错的排查。第二workbench.editor.enablePreview。默认情况下点击文件会以预览模式打开再点一下其它文件就会替换掉当前预览。如果你同时开多个文件想对比建议把它设为false打开的文件就会常驻标签页不会因为点一下别的文件就丢失正在看的那个。{ workbench.editor.enablePreview: false }第三explorer.compactFolders。在文件树很深的项目里默认会合并单子目录比如src/components这种只包含一个子目录的层级会折叠显示。有人喜欢紧凑有人觉得这次清晰度差我自己是设成false让文件树保持完整层级。{ explorer.compactFolders: false }第四files.autoGuessEncoding。如果你经常打开别人传过来的 GBK 编码文件设为true后编辑器会自动猜测编码不再乱码。这在国内开发的日常里几乎必备。{ files.autoGuessEncoding: true }第五git.confirmSync。每次同步都弹一次确认对高频 Git 用户来说非常啰嗦设为false可以减少打断。这几个配置单独拿出来都算不上什么大功能但组合在一起能让日常手感提升一个量级。很多时候大家觉得编辑器难用其实不是编辑器不行而是这些默认值没有贴合自己的使用习惯。最后再分享一个小技巧。settings.json 虽然强大但别把它当成配置的唯一出口。像 Cursor 的 AI 设置、语言包、主题和插件设置优先走 UI 面板settings.json 更适合管理跨机器同步、团队共享、需要精确控制的那部分配置。我见过有人把整个 Cursor 都锁死在 settings.json 里结果升级一次版本就要排查半天失效项。把配置文件当工具不要当成信仰。对我来说最舒服的状态是新机器 clone 一份仓库装齐必需的扩展导入 settings.json然后开启 Cursor 的 AI 补全剩下的交给肌肉记忆和 AI 去跑。这套流程跑顺了之后无论换电脑还是换项目你都只需要一个命令的时间就能回到熟悉的工作环境。
返回列表