VS code 基础操作与插件配置:从快捷键到 SSH 免密登录的完整实践
发布时间:2026/10/10 19:14:04 锦皓数字建站

1. 刚装完 VS Code 的那几天我踩过的坑VS Code 基础操作与插件配置这件事说简单也简单说容易翻车也是真的容易翻车。你刚下载完安装包打开界面一看左边一排图标上面一堆菜单写两行代码发现不会自动换行想跳回上一个编辑位置找不到快捷键远程连服务器每次都要输密码。这些问题不解决写代码的幸福感直接砍半。这篇内容面向的就是刚接触 VS Code 的开发者主线有两条一条是基础操作把高频快捷键、代码自动换行、鼠标滚轮缩放字体这些编辑设置理清楚另一条是插件配置和 SSH 免密登录让你从本地写到远程都顺手。我会给出可以直接复制的 settings.json 片段、插件清单以及每一步的验证动作。你跟着做大概半小时能把环境搭到一个比较舒服的状态。先说一下我自己的使用场景平时本地写 Python 和前端同时要连几台远程开发机跑训练和推理任务。所以下面提到的配置既有本地编辑的也有远程 SSH 的。如果你只是本地写代码SSH 那部分可以先跳过但建议还是看一眼因为免密登录这个东西一旦配好后面省下的时间非常多。另外提一句如果你在配置过程中需要调用大模型 API 来做代码补全或者对话调试可以顺手把 TaoToken 的配置也加上后面第 3 节会给具体的 JSON 片段。它兼容 OpenAI 风格的接口配置方式和普通插件差不多不复杂。2. 基础操作快捷键、自动换行与编辑设置2.1 高频快捷键先记住这十几个就够用VS Code 的快捷键多到记不完但真正高频的其实就那些。我整理了一张表你可以先挑几个用起来剩下的用着用着自然就记住了。操作Windows/LinuxmacOS命令面板CtrlShiftPCmdShiftP快速打开文件CtrlPCmdP全局搜索CtrlShiftFCmdShiftF当前文件搜索CtrlFCmdF跳转到行CtrlGCmdG多光标AltClickOptionClick选中相同词CtrlDCmdD移动整行Alt↑/↓Option↑/↓复制整行ShiftAlt↑/↓ShiftOption↑/↓注释当前行Ctrl/Cmd/格式化文档ShiftAltFShiftOptionF前进/后退浏览位置CtrlAlt- / CtrlShift-Ctrl- / CtrlShift-这里重点说两个容易被忽略的。一个是「前进和后退浏览位置」也就是 CtrlAlt- 和 CtrlShift-。你在看一个大项目的时候经常从 A 文件跳到 B 文件再跳到 C 文件想回到刚才的位置用鼠标点标签页很慢用这个快捷键就能像浏览器一样前后跳。我试过在排查一个跨五个文件的 bug 时这个快捷键救了我好几次。另一个是「选中相同词」CtrlD。比如你要把一个变量名userName改成user_name光标放在userName上按 CtrlD 会依次选中下一个相同的词按一次选一个选完直接输入新名字所有选中的位置同时改掉。比全局替换安全因为你可以控制选哪些。2.2 代码自动换行别再横向拉滚动条了代码自动换行是新手最容易忽略的设置。默认情况下VS Code 不会自动换行一行代码太长你就得横向滚动看着很难受。设置方法有两种第一种是临时切换按 AltZmacOS 是 OptionZ当前文件就会自动换行。再按一次取消。这个适合偶尔看长行的时候用。第二种是永久设置打开设置Ctrl,搜索wordWrap把 Editor: Word Wrap 改成on。或者直接改 settings.json加这一行{ editor.wordWrap: on }on是始终换行off是不换行wordWrapColumn是按指定列数换行配合editor.wordWrapColumn使用。我一般用on因为看日志和长字符串的时候方便。2.3 鼠标滚轮改变字体大小这个设置很多人不知道但用起来很爽。按住 Ctrl 滚动鼠标滚轮字体就能放大缩小。设置方法是在 settings.json 里加{ editor.mouseWheelZoom: true }加完之后你在编辑器里按住 Ctrl 滚轮字体大小实时变化。注意这个只影响编辑器区域不影响侧边栏和终端。如果你想让终端也支持终端字体大小得单独设置。2.4 一份可以直接复制的 settings.json下面这份是我自己在用的基础配置你可以直接复制到你的 settings.json 里。打开方式CtrlShiftP输入Open User Settings (JSON)回车。{ editor.wordWrap: on, editor.mouseWheelZoom: true, editor.fontSize: 14, editor.tabSize: 2, editor.formatOnSave: true, editor.renderWhitespace: boundary, editor.minimap.enabled: false, files.autoSave: afterDelay, files.autoSaveDelay: 1000, workbench.colorTheme: Default Dark, explorer.confirmDelete: false, terminal.integrated.fontSize: 13, git.autofetch: true }逐条解释一下几个关键的。editor.formatOnSave是保存时自动格式化前提是你装了对应语言的格式化插件比如 Python 的 Black 或者 Prettier。editor.renderWhitespace设为boundary会显示行首行尾的空格方便发现缩进问题。files.autoSave设为afterDelay配合 1000 毫秒延迟基本等于实时保存不用再按 CtrlS。editor.minimap.enabled关掉右侧的代码缩略图屏幕小的话能省不少空间。改完保存VS Code 会立即生效。如果没生效重启一下窗口CtrlShiftP 输入Reload Window。3. 插件配置与 TaoToken 接入可复制的 JSON 片段3.1 插件清单按需装不要贪多插件装太多会拖慢启动速度我建议先装这几个核心的后面缺什么再补。Python 相关Python 官方插件ms-python.python必装提供智能提示、调试、虚拟环境识别。Pylancems-python.vscode-pylance是语言服务器补全和类型检查靠它。Black Formatterms-python.black-formatter用来格式化。前端相关ESLint、Prettier、Vue - Official如果你写 Vue。通用效率GitLens 看代码修改历史谁在什么时候改了哪一行多人协作时很有用。Error Lens 把错误直接显示在行尾不用鼠标悬停。Code Spell Checker 检查拼写。远程开发Remote - SSHms-vscode-remote.remote-ssh这个后面免密登录要用。自动添加文件头注释KoroFileHeaderOBKoro1.korofileheader可以自动生成文件头部和函数注释支持自定义模板。装插件的方式CtrlShiftX 打开扩展面板搜索名字点安装。或者用命令行code --install-extension ms-python.python code --install-extension ms-python.vscode-pylance code --install-extension ms-python.black-formatter code --install-extension eamodio.gitlens code --install-extension usernamehw.errorlens code --install-extension ms-vscode-remote.remote-ssh3.2 TaoToken 接入配置兼容 OpenAI 风格如果你需要在 VS Code 里调用大模型做代码补全或者对话可以用 TaoToken 的 API。它的接口兼容 OpenAI 风格配置起来和普通插件一样。下面是一个通用的配置片段你可以放在项目的.env文件或者插件的设置里。{ taotoken.baseUrl: https://taotoken.net/api, taotoken.apiKey: 你的API Key, taotoken.model: claude-sonnet-4-20250514, taotoken.maxTokens: 4096, taotoken.temperature: 0.7 }如果你用的是 Continue 或者 Cline 这类插件配置方式类似。以 Continue 为例在config.json里加{ models: [ { title: TaoToken, provider: openai, model: claude-sonnet-4-20250514, apiBase: https://taotoken.net/api, apiKey: 你的API Key } ] }注意 Base URL 是https://taotoken.net/api不要多加斜杠或者路径。API Key 在控制台的 API Keys 页面生成生成后复制保存页面刷新后就看不到了。Model ID 这块不同模型名字不一样你可以在模型对话页面先试一下哪个模型可用再填到配置里。常见的比如claude-sonnet-4-20250514、gpt-4o这些。如果你不确定先用模型对话页面发一条消息验证。3.3 插件配置的验证动作装完插件和配完 API 之后怎么确认生效了几个简单的验证Python 插件新建一个.py文件输入import os然后输入os.看有没有弹出补全列表。有就说明 Pylance 在工作。Black Formatter写一行x12保存看是否变成x 1 2。变了说明格式化生效。TaoToken在 Continue 或者 Cline 里发一条「你好」看有没有正常返回。如果报 401检查 API Key 是否复制完整如果报连接错误检查 Base URL 是否写对。GitLens打开一个 Git 仓库的文件把光标放在某一行看行尾有没有灰色的 blame 信息显示最后修改人和时间。4. SSH 免密登录从生成密钥到远程连接4.1 生成 SSH 密钥对免密登录的原理很简单你本地生成一对密钥公钥放到远程服务器上私钥留在本地。连接的时候服务器用公钥验证你的私钥验证通过就不用输密码了。第一步在本地终端生成密钥对。Windows 用 PowerShell 或者 Git BashmacOS 和 Linux 用终端ssh-keygen -t ed25519 -C your_emailexample.com-t ed25519指定密钥类型比 RSA 更短更安全。-C后面是注释一般写邮箱方便识别。回车后会问你保存路径默认是~/.ssh/id_ed25519直接回车就行。然后问你要不要设密码如果追求完全免密直接回车留空。如果设了密码每次连接还是要输这个密码可以用 ssh-agent 记住。生成完你会得到两个文件id_ed25519是私钥id_ed25519.pub是公钥。私钥绝对不能给别人公钥可以随便传。4.2 把公钥放到远程服务器方法一用ssh-copy-idmacOS 和 Linux 自带Windows 的 Git Bash 也有ssh-copy-id -i ~/.ssh/id_ed25519.pub userremote_host把user换成你的远程用户名remote_host换成服务器 IP 或域名。执行后会让你输一次远程密码输完公钥就自动追加到服务器的~/.ssh/authorized_keys文件里了。方法二手动复制。先看公钥内容cat ~/.ssh/id_ed25519.pub复制输出的那一整行然后登录远程服务器编辑~/.ssh/authorized_keysmkdir -p ~/.ssh chmod 700 ~/.ssh echo 你复制的公钥内容 ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys权限很重要.ssh目录必须是 700authorized_keys必须是 600否则 SSH 会拒绝使用这个文件。4.3 配置 config 文件简化连接每次输ssh userremote_host太麻烦可以在本地~/.ssh/config里配置别名。没有这个文件就新建一个Host myserver HostName 192.168.1.100 User root Port 22 IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 60Host后面是你起的别名HostName是真实 IP 或域名User是用户名Port是端口IdentityFile指定私钥路径。ServerAliveInterval 60是每 60 秒发一次心跳防止连接被断开。配好之后直接ssh myserver就能连上不用再输用户名和 IP。4.4 在 VS Code 里用 Remote-SSH 连接装好 Remote - SSH 插件后按 F1 或者 CtrlShiftP输入Remote-SSH: Connect to Host选择你配置的myserver。VS Code 会打开一个新窗口连接到远程服务器。第一次连接会问你要不要装 VS Code Server选安装。连上之后左下角会显示SSH: myserver这时候你打开的文件、终端都是远程的。你可以在远程装 Python 插件、配环境本地只负责显示。验证免密是否生效在 VS Code 里打开远程终端输入ssh myserver如果直接进去没有提示输密码说明免密配置成功。5. 常见报错排查401、proxy failed、OAuth 与 conda 找不到5.1 401 Unauthorized这个报错一般出现在调用 API 的时候。原因通常是 API Key 不对或者没传。检查几个地方Key 是否复制完整有没有多余空格Base URL 是否写对TaoToken 的是https://taotoken.net/api请求头里是否带了Authorization: Bearer 你的Key。如果你用的是 Continue 或者 Cline检查配置文件里的apiKey字段。有时候复制的时候会带上换行符导致 Key 无效。重新生成一个 Key 再试。5.2 local proxy failed 或 connection refused这个报错说明请求没发出去卡在本地代理或者网络层。先检查你的 Base URL 是否能访问。在终端里执行curl -I https://taotoken.net/api如果返回 200 或者 401说明网络通。如果超时或者拒绝连接检查你的网络设置。注意不要配置任何系统代理指向不明地址直接用默认网络即可。如果你在 VS Code 里用了代理插件检查插件的代理设置是否和实际网络匹配。有时候插件默认走http://127.0.0.1:7890但你的机器上并没有这个服务就会报 local proxy failed。把代理设置关掉或者改成正确的地址。5.3 reading choices 报错这个报错通常出现在流式返回解析的时候提示reading choices或者cannot read property choices of undefined。原因是返回的数据格式和插件预期的不一致。可能是模型返回了错误信息但插件直接去读choices字段。排查方法先用 curl 直接请求一次看返回的 JSON 结构。curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer 你的Key \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 你好}] }如果返回里有choices字段说明接口正常问题在插件配置。如果返回的是错误信息比如model not found那就是 Model ID 写错了。换一个可用的模型名再试。5.4 OAuth 相关报错有些插件用 OAuth 方式登录报错可能是OAuth callback failed或者token exchange failed。这种情况一般是因为回调地址不对或者浏览器拦截了弹窗。检查插件的 OAuth 设置确认回调端口没有被占用。如果用的是远程开发OAuth 回调可能会指向远程服务器的 localhost导致本地浏览器打不开。这时候需要在 VS Code 里做端口转发把远程端口映射到本地。5.5 远程开发时 conda: command not found这个很常见。你在本地终端能用 conda但 VS Code 远程终端里找不到。原因是远程服务器的 shell 初始化文件没有加载 conda 的环境变量。解决方法是在远程服务器的~/.bashrc或者~/.zshrc里加上 conda 的初始化export PATH/path/to/conda/bin:$PATH把/path/to/conda/bin换成你实际的 conda 安装路径。可以用which conda在本地查但远程路径可能不一样。登录远程服务器执行find / -name conda -type f 2/dev/null找一下。找到后把路径加到 PATH 里然后source ~/.bashrc生效。如果还是不行在 VS Code 的设置里搜索terminal.integrated.env.linux手动加环境变量{ terminal.integrated.env.linux: { PATH: /path/to/conda/bin:${env:PATH} } }5.6 免密登录不生效配了公钥还是要输密码检查几个点。远程服务器的~/.ssh权限是不是 700authorized_keys是不是 600。远程服务器的/etc/ssh/sshd_config里PubkeyAuthentication是不是yesAuthorizedKeysFile是不是指向.ssh/authorized_keys。本地私钥权限是不是 600太开放的话 SSH 会拒绝使用。还有一个容易忽略的如果你在~/.ssh/config里配了IdentityFile确认路径是对的。可以用ssh -v myserver看详细的调试信息里面会告诉你用了哪个密钥为什么被拒绝。6. 配好之后这些动作可以帮你省下更多时间环境搭好只是开始后面用起来还有一些小技巧。比如你可以把常用的 settings.json 片段做成代码片段Snippets新机器上直接粘贴。插件清单可以导出成code --list-extensions extensions.txt换电脑的时候批量安装cat extensions.txt | xargs -L 1 code --install-extension。SSH 免密登录配好之后建议把常用的服务器都写到~/.ssh/config里用别名管理。如果服务器多可以用Host *做全局配置比如统一设置ServerAliveInterval和TCPKeepAlive。TaoToken 的 API Key 建议放在环境变量里不要硬编码在配置文件里。在~/.bashrc或者~/.zshrc里加export TAOTOKEN_API_KEY你的Key然后在插件配置里引用${env:TAOTOKEN_API_KEY}。这样配置文件可以同步到 Git不怕泄露 Key。如果你需要长期在 VS Code 里做编码和 Agent 任务可以考虑用 Coding Plan额度和稳定性会比按次调用更合适。模型对话页面可以用来快速验证模型是否可用接入文档里有更详细的参数说明。API Keys 页面管理你的密钥控制台看用量。最后说一个我自己的习惯每配好一个新环境我会写一个setup.md放在 dotfiles 仓库里记录这次装了哪些插件、改了哪些设置、遇到什么问题怎么解决的。下次换机器或者帮同事配环境直接照着做不用重新踩坑。这个习惯帮我省了很多重复劳动你也可以试试。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。