代码编辑器vscode

① 配置源与落点

# 配置·源·改        /etc/nixos/modules/desktop/ide/vscode.nix
# 配置·托管段·标记    // >>> nix 管理 … // <<< nix 管理(段内键值每行带逗号)
# 配置·开关·关闭键    行首加 // ⇒ 该键回到运行时值(不再由 nix 托管)
# 配置·边界·段外      标记之外的键(UI 手改)永不被碰
# 配置·安全·非法      拒写 + 留备份 settings.json.vscode-bad-<时间>
# 配置·生效·rebuild   source /etc/nixos/scripts/rebuild.sh && rebuild "描述"

② 回读与回滚

# 核验·看段          sed -n '// >>> nix 管理/,/<<< nix 管理/p' ~/.config/Code/User/settings.json
# 核验·防重复        grep -c '>>> nix 管理' ~/.config/Code/User/settings.json     # 期望 1
# 核验·脏备份        ls ~/.config/Code/User/settings.json.vscode-bad-* | wc -l   # 期望 0
# 回滚·世代表        rebuild list
# 回滚·切上一代      sudo nix-env --rollback -p /nix/var/nix/profiles/system

③ 解释器与 uv 环境

# 环境·uv·建        uv venv                        # 生成 .venv ⇒ 扩展自动命中
# 环境·uv·钉版本      uv python pin 3.13
# 环境·uv·看包        uv pip list
# 环境·uv·装私有包    uv pip install /s500data/softnixos/wheel/imagetools-1.0.1.tar.gz
# 环境·判定·自查      cat /s500data/envs/py313/pyvenv.cfg    # 有它 ⇒ 认作 venv
# 环境·激活          source /s500data/envs/py313/bin/activate
# 环境·识别·已托管    python.venvPath / python-envs.globalSearchPaths / python.locator
# 环境·选解释器       Ctrl+Shift+P → Python: Select Interpreter → py313 /s500data/envs/py313/bin/python
# 环境·换后刷新       Ctrl+Shift+P → Developer: Reload Window
# 环境·坑·无 numpy    未选解释器 ⇒ 用 PATH 上的 python(无 numpy)⇒ Pylance 报 Import 无法解析

④ 扩展·网络·排障

# 扩展·装            code --install-extension ms-python.python     # 非 nix 管(重装丢)
# 扩展·列/卸         code --list-extensions --show-versions  |  code --uninstall-extension 
# 扩展·出网·代理      http_proxy=http://127.0.0.1:7890 code --install-extension 
# 网络·遥测·代理拦    mihomo REJECT:*.vortex.data.microsoft.com / dc.services.visualstudio.com
# 排障·概览/日志     code --status  |  ls -dt ~/.config/Code/logs/*/window*/exthost/* | head
# 排障·崩溃上报      ~/.vscode/argv.json 的 enable-crash-reporter
# 打开·目录/新窗      code    /   code -n 

⑤ 已托管键(隐私/遥测/AI/更新 + 环境识别)

telemetry.telemetryLevel=off          # 隐私·遥测·总开关·关
telemetry.editStats.enabled=false     # 隐私·遥测·编辑统计·关
telemetry.enableCrashReporter=false   # 隐私·上报·崩溃·关(旧键)
workbench.enableExperiments=false     # 隐私·实验·A/B·不参与
update.mode=none                      # 更新·本体·交给 nix
extensions.autoCheckUpdates=false     # 更新·扩展·检查·关
extensions.autoUpdate=false           # 更新·扩展·自动·关
chat.disableAIFeatures=true           # AI·内置功能·总开关·关
security.workspace.trust.enabled=true # 安全·工作区信任·保留
python.venvPath=/s500data/envs        # 环境·识别·父目录
python-envs.globalSearchPaths=[/s500data/envs] # 环境·识别·绝对路径(只加不减:空 ⇒ 列表全空)
python.locator=native                 # 环境·发现器·原生