Contents

VSCode相关问题

参考文章

关于缓存文件的转移

为了减少 C 盘空间占用, 故修改扩展和缓存文件的路径【注意, 移到其他的盘后, 以后启动 VSCode 可能需要管理员权限】
通过创建符号链接(symbolic link)来转移 VSCode 缓存和扩展文件, 让系统认为文件仍在 C 盘原路径, 但实际内容存储在 D 盘。这样 VSCode 能无感知地读写, 同时释放了 C 盘空间
具体步骤如下:

  • 完全关闭 VSCode

  • 管理员身份 运行命令提示符

    右键点击 CMDPowerShellWindows Terminal, 选择“以管理员身份运行”
    否则 mklink 和删除系统文件夹会失败

  • 规划目标路径

    在 D 盘(或其他非系统盘)创建好目标文件夹, 例如

    1
    
    mkdir D:\VSCodeSystem\mylinks
    
  • 移动现有数据

    将当前 VSCode 的扩展和缓存文件复制到 D 盘的自定义文件夹中(假设是 D:\VSCodeSystem\mylinks
    可通过手动复制粘贴或者使用以下命令

    注意将 %username%D:\VSCodeSystem\mylinks 替换为实际用户名和目标路径

    1
    2
    3
    4
    5
    
    # 复制扩展文件夹
    xcopy "C:\Users\%username%\.vscode\extensions" "D:\VSCodeSystem\mylinks\extensions" /E /H /C /I
    
    # 复制用户数据文件夹(包含缓存、配置等)
    xcopy "C:\Users\%username%\AppData\Roaming\Code" "D:\VSCodeSystem\mylinks\Code" /E /H /C /I
    

    /E:复制包括空目录的所有目录和子目录
    /H:复制隐藏文件和系统文件
    /C:即使遇到错误, 也继续复制操作
    /I:如果目标不存在, 则将其作为目录创建
    /Y:禁止提示确认是否覆盖目标文件(自动覆盖)

  • 删除原文件夹

    1
    2
    
    rmdir /s "C:\Users\%username%\.vscode\extensions"
    rmdir /s "C:\Users\%username%\AppData\Roaming\Code"
    
  • 创建符号链接

    1
    2
    
    mklink /D "C:\Users\%username%\.vscode\extensions" "D:\VSCodeSystem\mylinks\extensions"
    mklink /D "C:\Users\%username%\AppData\Roaming\Code" "D:\VSCodeSystem\mylinks\Code"
    

    mklink /D xxx\a yyy\b
    该语句中, xxx 下的 a 文件夹不用创建, 执行命令后会自动生成, yyy 盘下的 b 文件夹是实际用于存储的位置

  • 验证符号链接是否成功

    1
    2
    
    dir "C:\Users\%username%\.vscode"
    dir "C:\Users\%username%\AppData\Roaming"
    

    如果成功, 会看到 extensions 文件夹旁边有 <SYMLINKD> 标记

撤销操作

1
2
3
4
5
6
7
# 删除符号链接(注意:不是删除实际文件)
rmdir "C:\Users\%username%\.vscode\extensions"
rmdir "C:\Users\%username%\AppData\Roaming\Code"

# 移回文件
xcopy "D:\VSCodeSystem\mylinks\extensions" "C:\Users\%username%\.vscode\extensions" /E /H /C /I
xcopy "D:\VSCodeSystem\mylinks\Code" "C:\Users\%username%\AppData\Roaming\Code" /E /H /C /I

注意事项

  • 先备份重要数据
  • 确保 VSCode 完全关闭 后再执行操作
  • 目标路径(D 盘) 需要有足够的空间
  • 如果遇到“拒绝访问”错误, 检查是否以管理员身份运行
  • 某些杀毒软件可能会拦截符号链接操作, 可暂时禁用

递归删除目录和子目录的所有内容, 且不会进入回收站中 rmdir /s ...
删除符号连接 rmdir ...

Pylance 插件

Pylance 是微软为 VS Code 开发的 Python 语言服务器, 负责提供智能化的代码开发体验
它作为后台服务运行, 专门处理 Python 代码的分析和理解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
开发者输入代码
VS Code 发送请求到 Pylance
Pylance 分析代码
返回分析结果:
1. 补全建议
2. 错误提示
3. 类型信息
4. 导航数据
VS Code 更新界面显示

问题分析

问题现象:Python 代码失去智能提示(跳转、补全、高亮), 模块名显示为白色而非高亮

  • 根本原因

    工作区目录下存在大型数据集文件夹(如 data/ 包含大量图片文件)

  • 影响机制

    Pylance 语言服务器在索引文件时, 会遍历工作区所有文件。当遇到包含大量文件的 data/ 文件夹时, 会陷入长时间的索引过程

  • 验证方法

    打开较小的工作区测试, 确认功能正常, 证明是特定文件夹导致的性能问题

解决方案

创建 pyrightconfig.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "exclude": [
    "data/*.jpg",
    "data/*.png", // 排除 data 文件夹中指定的文件类型
    "**/__pycache__", // 排除所有缓存目录
    ".venv",
    "venv",
    "env", // 排除虚拟环境
    "node_modules", // 排除 node 模块
    "build",
    "dist", // 排除构建目录
    ".git" // 排除版本控制
  ]
}

再重启 Pylance, 按 Ctrl+Shift+P 打开命令面板, 选择 “Python: Restart Pylance Server”
观察代码补全是否正常, 模块导入是否高亮, 函数跳转是否快速

项目结构优化

1
2
3
4
5
6
7
project/
  ├── src/                    # 源代码(Pylance 重点分析)
  ├── tests/                  # 测试代码
  ├── data/                   # 数据集 → 在配置中排除
  ├── notebooks/              # Jupyter 笔记本 → 可选排除
  ├── pyrightconfig.json      # Pylance 配置文件
  └── README.md

将代码与数据分离, 让 Pylance 专注于分析 Python 源代码文件