VSCode 快速入门

1 基本概念

VS Code(Visual Studio Code)是一个轻量级的开源代码编辑器,由微软开发。它支持多种编程语言,并提供了丰富的功能和扩展生态系统,使开发人员能够高效地编写和调试代码

  • VS Code 是一个跨平台的代码编辑器,适用于 Windows、macOS 和 Linux 等操作系统
  • 提供了丰富的编辑功能,包括语法高亮、代码补全、代码导航、代码重构等,以提高开发效率
  • 支持集成终端、调试器、版本控制系统等工具,使开发人员能够在一个界面中完成大部分开发任务

主要优点:

  • 轻量级和快速启动:启动速度快,对系统资源的占用较少
  • 强大的扩展生态系统:VS Code 提供了丰富的扩展,可以根据开发人员的需求进行定制和扩展。这些扩展包括语言支持、主题、调试器、版本控制等,使得 VS Code 可以适应不同的开发场景
  • 集成的调试功能:VS Code 集成了调试器,可以帮助开发人员进行代码调试和错误排查
  • 跨平台支持:开发人员能够在多个操作系统/不同的环境中保持一致的开发体验

主要缺点:

  • 缺少某些高级功能:对于特定的开发需求,可能需要额外的插件或者使用更专业的工具
  • 学习曲线较陡:尽管 VS Code 提供了丰富的功能,但对于初学者来说,可能需要一些时间来熟悉和掌握这些功能。特别是对于没有使用过类似编辑器的开发人员来说,学习曲线可能较陡

2 基本功能

以 Python 环境为例,更多细节可参阅 官方文档

关于代码补全、代码格式化、代码提示等功能就不再赘述

2.1 环境和运行

首先确保 Python 环境和 VSCode 正确安装

在 VSCode 安装 Python extension 并选择合适的 Python 版本

正常情况下,点击右上角的运行按钮(红框)即可运行 Python 文件:

2.2 调试模式

在 VSCode 安装 Python Debugger 扩展

按 F5 初始化调试器,选择默认的 Python File 方式,开启调试

在代码中打"断点(下图代码第二行左侧的红色标记)"后,进入调试状态:

调试状态下的按钮功能说明:继续 (F5)、单步执行 (F10)、单步执行 (F11)、单步执行 (Shift+F11)、重新启动 (Ctrl+Shift+F5) 和停止 (Shift+F5)

2.3 调试的配置

打开调试的配置文件:launch.json

以 Flask 调试为例,对应的配置信息如下:

{
    "name": "Python Debugger: Flask",
    "type": "debugpy",
    "request": "launch",
    "module": "flask",
    "env": {
        "FLASK_APP": "app.py"
    },
    "args": [
        "run",
        "--no-debugger"
    ],
    "jinja": true
},

配置文件可以设置参数和环境变量等信息,简化调用程序的操作过程

2.4 测试模式

首先创建测试所需的程序文件:inc_dec.py

def increment(x):
    return x + 1

def decrement(x):
    return x - 1

点击左侧的 烧杯 图标开启测试功能,并根据提示进行初始化配置

开启测试功能后,相关配置信息将存储在 settings.json

VSCode 支持两个测试框架:unittestpytest

unittest 框架下的测试示例:

import inc_dec    # The code to test
import unittest   # The test framework

class Test_TestIncrementDecrement(unittest.TestCase):
    def test_increment(self):
        self.assertEqual(inc_dec.increment(3), 4)

    # This test is designed to fail for demonstration purposes.
    def test_decrement(self):
        self.assertEqual(inc_dec.decrement(3), 4)

if __name__ == '__main__':
    unittest.main()

pytest 框架下的测试示例:

import inc_dec    # The code to test

def test_increment():
    assert inc_dec.increment(3) == 4

# This test is designed to fail for demonstration purposes.
def test_decrement():
    assert inc_dec.decrement(3) == 4

测试模式下,也是支持普通测试和调试测试的

3 插件推荐

3.1 基础环境部署

  1. 中文(简体)语言包 (必备)
  2. Remote - SSH 远程连接(必备)
  3. Docker 镜像容器管理

待实验:

  • Git Graph (616w):通过按钮的方式轻易地创建、切换分支、merge等git操作

3.2 Python开发

  1. IntelliCode 代码补全(3480w):基于理解代码上下文和机器学习的代码补全
  2. autoDocstring Python文档生成器(675w):可快速生成 python 函数的文档字符串
  3. black formatter 自动格式化插件(144w):用于格式化python代码到pep8
  4. ruff 代码格式化 (77w):功能强大,速度快,可配置项丰富(可替代 black)
  5. flake8 问题检查插件(44w):用于提示 pep8,检查代码错误和代码复杂度

待实验:

3.3 AI辅助工具

  1. GitHub Copilot(1840w):实时获取代码建议,支持注释转代码、创建单元测试、创建 SQL 查询、对话模式(Copilot Chat);生成质量较好,付费(10刀/月)
  2. Code GPT(132w):基于 GPT 类模型的对话式辅助编程,拓展性强但功能嵌入性不够
  3. Bito AI代码助手(60w): 基于 OpenAI 的对话式辅助编程(暂不需要额外提供 API 密钥),提供代码生成与优化、测试用例创建、代码编辑、代码解释等功能
  4. CodeGeeX(56w):基于 CodeGeeX2-6B 模型的 AI 编程助手,提供代码生成/补全、注释生成、代码翻译、AI 聊天、生成单元测试等功能;免费,Copilot 平替
  5. 通义灵码(50w):实时续写/生成代码、单测、注释;智能问答、报错排查(阿里旗下)
  6. CodiumAI(39w):提供代码分析、自动生成测试、代码修复与增强等功能
  7. 文心快码 (14w):代码补全和优化、单测/注释生成、代码对话(百度旗下)
  8. MarsCode(3w):提供代码解释、单测生成、问题修复、技术问答等辅助功能(字节旗下)

在网上调研了一下 v2ex 用户的使用习惯或推荐:首推 Copilot(但可能存在延迟问题),其次推荐较多的是 CodiumAI 和通义灵码(可能偶尔会出现 CPU 占用过高的问题)

VS Code Copilot、Zed AI、Cursor 对比

待实验:

往年同期文章