VS Code: 较为轻量的IDE

VS Code

基本功能介绍

  • VS Code是微软开发的开源的代码编辑器,支持WindowsMacOSLinux等操作系统 其最显著的优点是轻量快速,且得益于活跃的插件生态而支持多种编程语言 高度灵活的自定义配置也是其吸引我的一点
  • 左侧一栏为快捷的插件打开方式,包括资源管理器、项目管理器、扩展市场等
    • 资源管理器:与其他IDE类似,VS Code将一个项目当作一个工作区来管理,提供的快捷方式包括打开文件夹等 其它更多有关文件管理的功能在顶栏的“文件”中
    • 项目管理器是图标为分叉的一项,它允许将项目绑定一个版本控制管理器,例如GitSVN,同时也支持绑定Github或其它远程仓库托管网站的账号
    • 扩展市场:这是体现VS Code丰富生态的地方
  • 顶上一个搜索栏可以最重要的作用是通过键入一个>,以快速搜索并调用插件的功能,之前所说的功能均可由搜索栏搜索得到
  • 以上UI的布局均可随意拖动,以及可以在右上方调整布局
  • 配置:VS Code将配置分为三级,默认配置、用户配置、工作区配置,默认配置存储于defaultSettings.json中,另外两者存储在同名文件settings.json中,所有均在首选项:打开XX配置(JSON)中,VS Code提供了UI界面帮助修改,但建议直接编辑json文件
    • 默认配置:VS Code本身及其插件会提供一系列的配置项,插件维护者需要为每一个配置项提供默认值,用户下载该插件后则会登记在默认配置中 该文件是只读文件,无需在意
    • 用户配置:用户配置是用户自定义的全局的配置,存放在本机用户家目录下,是最常改的配置文件,在用户定义后,它会覆盖默认配置,否则使用默认配置
    • 工作区配置:存放在工作文件夹下自动生成的./vscode/settings.json,它会覆盖所有上级配置,未定义的配置项使用用户配置

基本的配置

  • 编辑器的基本配置(仅包括影响较大的可设置为非默认值的配置):

    • 区分内联建议与快速建议:快速建议指的是由字典服务提供的键入值后在光标右侧显示的提示,内联建议指由内置AI智能生成的代码补全 不建议使用内联建议

    • 不在提交字符时接受建议(建议即快速提示):

      1
      "editor.acceptSuggestionOnCommitCharacter": false
    • 不在按下Enter时接受建议:

      1
      "editor.acceptSuggestionOnEnter": "off"
    • 设置在保存代码时进行的动作:

      1
      2
      3
      4
      5
      "editor.codeActionsOnSave": {
      // 在显示保存时自动import所需包
      "source.organizeImports": "explicit",
      // 有其它source动作
      }
    • 设置打开文件时不检测tabSizeinsertSpaces,即编辑器无法改变预设tab的空格数以及预设的是否用空格代替tab

      1
      "editor.detectIndentation": false
    • 设置保存文件时自动格式化(格式化程序需可用,通常分别设置格式化程序而在全局设置一次以下属性):

      1
      "editor.formatOnSave": true
    • 设置键入Tab键时写入\t而不是空格:

      1
      "editor.insertSpaces": false

      此外,如果要设置一个\t的空格数以及一个缩进的空格数,可以设置editor.tabSize以及editor.indentSize

    • 设置接受快速建议时,替换右侧的代码:

      1
      "editor.suggest.insertMode": "replace"
    • 设置在宽度不足时换行显示:

      1
      "editor.wordWrap": "on"
  • 通过设置"[xxx]"字典,可以设置专门适用于某种文件的配置,例如:

    1
    2
    3
    "[java]": {
    "editor.defaultFormatter": "redhat.java"
    }

    很常用的是对不同的文件配置不同的默认格式化程序

推荐插件

中文与颜色主题

  • Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code:简体中文插件
  • 设置颜色主题:在左下齿轮图标中设置主题>颜色主题,或通过搜索栏搜索>首选项: 颜色主题,第一项可以搜索查找本机没有的主体并自动下载对应的插件
  • 推荐的主题(浅色党),安装对应的浅色主题插件后会有对应的暗色主题
    • Default Light ModernVS Code的内置浅色主题
    • Github Light:类Github风格
    • Monokai Pro Light:偏灰色主题
    • Falcon Light:比较护眼的主题,有青、绿、灰、粉、黄色
    • Trae LightPure WhiteSolarized Light也是不错的主题
    • 其它主题可在https://vscodethemes.com/快速预览

Markdown

  • Markdown PDF:支持导出为PDFHTML、图片、json

  • markdownlint:语法高亮与风格检测,同时提供更好用的格式化程序,通过以下配置来设置格式化程序、忽略部分警告:

    1
    2
    3
    4
    5
    6
    7
    8
    "[markdown]": {
    "editor.defaultFormatter": "DavidAnson.vscode-markdownlint",
    },
    "markdownlint.config": {
    // 警告与错误提示
    "default": true,
    "MD033": false,
    }

  • Markdown Preview Enhanced:提供更好的预览,通过以下配置来支持行内LaTeX公式渲染:

    1
    "markdown-preview-enhanced.mathRenderingOption": "MathJax"

  • Markdown Preview Mermaid Support:提供mermaid代码块的渲染

  • GitHub Markdown Preview:使用Github的预览风格

C/C++

  • C/C++

  • C/C++ Runner:支持运行C/Cpp代码,包含以下配置:

    1
    2
    3
    4
    5
    6
    // 额外包含的路径
    "C_Cpp_Runner.includePaths": [
    ],
    // C/Cpp标准
    "C_Cpp_Runner.cStandard": "c17"
    "C_Cpp_Runner.cppStandard": "c++17"
  • clangd

  • CMakeCMake Tools

Java

  • Extension Pack for Java
  • ?Java Language Support
  • Spring Boot Extension Pack

远程连接

  • Remote Development

数据库

  • Database Client

Vim

  • Vim
  • settings.json代替了vimrc配置:
    • 配置插入模式的快捷键,建议绑定esc

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      "vim.insertModeKeyBindings": [
      {
      "before": [
      "j",
      "j"
      ],
      "after": [
      "<esc>"
      ]
      }
      ]

      在插入模式下键入两次j等价于键入esc

    • 配置在正常模式下的快捷键(例如将保存文件设置为<leader>+s):

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      "vim.normalModeKeyBindingsNonRecursive": [
      {
      "before": [
      "<leader>",
      "s"
      ],
      "commands": [
      ":w!"
      ]
      },
      {
      "before": [
      "<leader>",
      "q"
      ],
      "commands": [
      ":q!"
      ]
      }
      ]
    • 配置leader键为空格(默认为\):

      1
      "vim.leader": "<space>",

LaTeX

  • LaTeX

Vue

  • Vue (Official)
  • Vetur

Python

  • Python Extension Pack
  • Black Formatter
  • Flake8
  • Jupyter

Rust

其它插件

  • GitHub Pull Requests:支持在VS Code中提PR与讨论Issue