当前位置: 首页 > article >正文

VS Code的设置功能以及多层级的设置方式与解密

VS Code的Settings功能为用户提供了极大的灵活性和便利性,使得用户可以根据自己的需求和偏好来定制编辑器的行为和外观。

Settings 可以实现的具体功能

VS Code的设置项非常丰富,涵盖了各个方面,包括但不限于:

  1. 编辑器选项:如字体大小(editor.fontSize)、行号显示(editor.lineNumbers)、自动换行(editor.wordWrap)、制表符宽度(editor.tabSize)、是否使用空格代替制表符进行缩进(editor.insertSpaces)等。
  2. 调试器配置:可以在launch.json文件中配置调试器,如指定调试目标、设置启动参数、环境变量等。
  3. 任务配置:在tasks.json文件中定义和配置任务,如编译代码、运行测试、构建项目等。
  4. 插件管理:可以在设置中启用或禁用扩展插件,并记录项目所依赖的扩展插件(extensions.json)。
  5. 文件和文件夹排除:在搜索时排除特定的文件或文件夹,以提高搜索效率。
  6. 外观和主题:设置图标主题(workbench.iconTheme)、颜色主题(workbench.colorTheme)等,以定制编辑器的外观。
  7. 键盘快捷键:通过keybindings设置自定义的键盘快捷键。
  8. 自动保存:设置文件自动保存的方式,如延迟保存(afterDelay)、焦点改变时保存(onFocusChange)或不自动保存(off)。

另外, 插件也可以通过设置的方式更改配置, 比如对于Java来说,JDK的安装路径。

VS Code 的三个层级的设置

VS Code的设置可以有三个层级:

  • User(用户级)
  • Workspace(工作区级)
  • Project(项目级,通过.vscode文件夹中的配置实现)

1. User(用户级)

在这里插入图片描述

  • 位置:用户级设置通常存储在用户的个人配置文件夹中,路径类似于用户路径/AppData/Roaming/Code/User/Settings.json(Windows系统)。
  • 影响范围:这些设置会全局应用于用户的所有VS Code实例和项目。
  • 配置方式:可以通过VS Code的设置界面(Ctrl + ,Cmd + ,打开)进行配置,也可以通过直接编辑Settings.json文件进行配置。
  • 特点:适合设置一些全局性的偏好,如编辑器主题、字体大小、自动保存等。

2. Workspace(工作区级)

  • 位置:工作区级设置通常存储在当前工作区的.vscode文件夹中的settings.json文件中。
  • 影响范围:这些设置只会应用于当前工作区内的所有项目。
  • 配置方式:通过VS Code的设置界面,选择工作区设置进行配置,或者在工作区的.vscode文件夹中直接编辑settings.json文件。
  • 特点:适合为特定工作区设置一些共享的配置,如编译器选项、代码格式化规则等。这些设置不会影响到其他工作区或全局设置。

3. Project(项目级)

在这里插入图片描述

  • 位置:虽然VS Code没有直接的“项目级”设置层级,但可以通过在项目的.vscode文件夹中放置特定的配置文件(如settings.jsonlaunch.jsontasks.json等)来实现项目级的配置。
  • 影响范围:这些配置文件只会影响当前项目。
  • 配置方式:在项目的根目录下创建.vscode文件夹,并在其中添加相应的配置文件。
  • 特点:项目级配置允许开发者为特定项目定制设置,如调试配置、任务自动化等。这些设置与工作区级设置类似,但更加细化,只针对当前项目有效。

三个层级设置的优先级和合并策略

  • 层级优先级:当User、Workspace和Project三个层级中存在相同的设置项时,它们的优先级从低到高依次是:User < Workspace < Project(通过.vscode文件夹中的配置实现的具体设置)。也就是说,项目级的配置会覆盖工作区级和用户级的同名设置。

  • 合并策略:VS Code在设置合并上采用了一种智能的策略,允许不同层级的设置相互补充而不是简单覆盖。例如,如果工作区级设置了一些编译器选项,而用户级设置了其他编译器选项,那么这些选项会合并在一起,而不是后者覆盖前者。




http://www.kler.cn/a/499902.html

相关文章:

  • 数据结构之双向链表
  • Python 正则表达式完全指南
  • 30分钟学会HTML
  • 海康机器人IPO,又近了一步
  • 青稞Talk预告!面向自动驾驶与物理世界对齐的视频生成模型
  • PY_11_07
  • 深入详解自然语言处理(NLP)中的语言模型:BERT、GPT及其他预训练模型的原理与应用
  • Qt学习笔记第81到90讲
  • SpringBoot日常:集成Kafka
  • 【深度学习】数据预处理
  • vue3的v-for 与 v-if
  • React setState详细使用总结
  • Bytebase 3.1.0 - 通过 Google / GitHub SSO 功能开放给专业版
  • C语言gdb调试
  • 14.C语言Union详解:节省内存的利器
  • GaussDB分布式数据倾斜处理
  • 2021 年 3 月青少年软编等考 C 语言五级真题解析
  • 如何使用MVC模式设计和实现校园自助点餐系统的微信小程序
  • Day04-后端Web基础(Maven基础)
  • uniApp通过xgplayer(西瓜播放器)接入视频实时监控
  • 如何修改 Go 结构体的私有字段
  • 关于解决线上问题ES内存直接打满的问题
  • 深度学习每周学习总结R3(LSTM-火灾温度预测)