vscode的一些使用问题
1、快捷键
打开快捷键面板:在 Windows 或 Linux 上按下 Ctrl + K 然后紧接着按下 Ctrl + S 。在 macOS 上则是 Cmd + K 然后 Cmd + S。
(1)打开命令面板
按下F1(有些笔记本需要FN+F1) 或 Ctrl+Shift+P
在命令面板中输入命令,可以快速执行各种操作,如打开文件、运行任务等。
(2)注释
单行注释:ctrl + /
多行注释:alt + shift + A
(3)删除行
删除一行:ctrl +D【这个快捷键是我自定义的】
自定义的步骤:VScode配置快捷键
step1:
打开快捷键面板,具体操作:
按下 Ctrl + K 然后再按 Ctrl + S(适用于 Windows 和 Linux)。
对于 macOS 用户,可以使用 ⌘ + K 然后 ⌘ + S。
step2:
搜索要修改的命令,点击该命令所在行首的编辑按钮(小铅笔),键盘按下想要修改后的快捷键,即可自动修改。
(4)上下移动光标
移动行:alt + upArrow/downArrow
(5)光标回退
回退到上一步:alt + leftArrow
(6)复制行
向上复制:alt + shift + upArrow
向下复制:alt + shift + downArrow
(7)插入空白行
向上插一行:ctrl + shift + enter
向下插一行:ctrl + enter
(8)代码、注释区折叠
第一种:批量
代码折叠:先ctrl + k,松开后再ctrl + 数字0
代码展开:先ctrl + k,松开后再ctrl + J
- 注意1:这2个快捷键是作用在当前py文件的所有内容上的(暂称为:批量操作)。
- 注意2:对于注释代码,如果之前没有执行过折叠,以上命令不生效。
解决办法:先把注释区的注释放开,再执行代码折叠,然后再恢复之前的注释状态。此后再执行以上2个快捷命令,对注释区也是生效的啦。
第二种:分区
仅【折叠/展开】光标所在行及以下区域:先ctrl + k,松开后再ctrl + L
- 注意1:这个快捷键是2个功能共用。
- 注意2:和上面的批量折叠、展开一样,注释区需要先放开,再使用快捷键,最后再恢复注释状态。
(9)页面缩放
页面缩放:ctrl + 减号/加号
(10)快速打开全局设置
快速打开全局设置:ctrl + 英文逗号
(11)注释快捷键
如果已经安装了koroFileHeader扩展,并配置了注释模版(具体可见 ##4、title模版配置):
(1)文件头部注释快捷键:
window:ctrl+win+i
mac:ctrl+cmd+i
linux: ctrl+meta+i Ubuntu:
ctrl+super+i
(2)函数注释注释快捷键:
window:ctrl+win+t
mac:ctrl+cmd+t
linux: ctrl+meta+t, Ubuntu:
ctrl+super+t
(12)切换自动换行
on:根据编辑器视口宽度自适应。当你拖拽调整窗口大小时,换行位置会实时变化。
off:不自动换行,出现水平滚动条。
ALT + Z
快捷键在关闭文件再次重新打开后是失效的,需要再次使用快捷键使其换行显示。想要一劳永逸的,可以在设置中配置:

2、使用方法
总览图

2.1 使用vscode 新建工程
- 工具栏
file -> new file(在给文件命名时,文件类型也要自己补充完整)- 对命名框
enter后,会弹出文件系统,选择或新建一个文件夹。
文件夹用途:用来保存当前新建的文件,这个文件夹也是当前要创建的工程夹。- ctrl+s 保存当前文件 ;
- 工具栏
file -> add folder to workplace
意思:把当前文件夹添加到vscode 的 workplace。
这样当前workplace下就展示的是当前工程啦~
2.2 在vscode的同一个workplace里展示多个工程
- 先在workplace里打开一个
工程A;- 再执行
file -> add folder to workplace;- 选择
待添加的工程B;- END!
这样就可以看到,当前workplace下同时存在A和B两个工程!
2.3 文件夹.vscode及其下的settings.json文件怎么配?
(1)文件夹.vscode的位置
文件夹.vscode是用户自己创建的,可以放在任意目录下,但放的位置不同作用范围也不同。
通常,.vscode/setting.json作用范围仅限.vscode一级父目录下所有文件夹及文件。
更上层的父目录可以通过再重新创建个.vscode文件夹并添加自己的个性化配置。
如果是整个工作区要使用同一配置,就要把.vscode挪到顶级父目录下。
(2)settings.json
- 文件内容:用户自定义的一些配置。可以自定义的内容范围可以自行在网上找案例学习。
- 文件位置:放在
.vscode根目录下。 - 示例:
{
"python.analysis.extraPaths": [
"${workspaceFolder}",
"${workspaceFolder}/real_time_compliance_quality_inspection",
"${workspaceFolder}/trace_detection"
],
// 2026/8/10 添加
"python.analysis.diagnosticSeverityOverrides": {
"reportMissingImports": "warning", // 导入了不存在的模块(最常见、关键的错误)
"reportOptionalOperand": "none", // 对可能为 None 的对象做算术操作(如 None + 1)
"reportOptionalIterable": "none", // 对可能为 None 的对象做迭代操作(如 for x in None)
"reportUndefinedVariable": "warning", // 使用了未定义的变量(最常见、关键的错误)
},
// "python-envs.defaultEnvManager": "ms-python.python:conda",
// "python-envs.defaultPackageManager": "ms-python.python:conda"
}
(3) launch.json
- 定义一些自定义的配置
- 示例:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "NotJustMyCode", # 当前应用名字,随便写
"type": "debugpy", # 调试模式
"request": "launch",
"program": "${file}", # 当前运行的.py脚本
"console": "integratedTerminal",
"justMyCode": false, # 指定断点调式时,非自己写的代码(如第三方包)也要参与断点调试。
"args": []
},
{
"name": "api-production",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"--mode", # 指定脚本运行参数
"production"
]
},
{
"name": "app-production",
"type": "debugpy",
"request": "launch",
"module":"streamlit",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"run",
"${file}",
"--server.port",
"8002",
"--", # 单独一行,标识一个特殊的标记,用于分隔传递给 streamlit run 命令的参数和传递给脚本的参数。
"--mode",
"production"
]
}
]
}
2.4 在vscode中,怎么在同一workplace同时运行多个.py进程?
在vscode中,同时run不同文件时,同一终端如果已经被占用就会导致其他文件无法使用,所以会出现文件无法运行的情况。
解决办法
右上角:点击“运行”按钮 -> 选择“在专用终端中运行python文件”。
这样就会在【编辑区的底部右侧】 -> 终端栏 -> 看到每个py文件的运行都会启动不同的终端,并且互不影响。
- step1: 选择启动方式

- step2: 查看不同终端

2.5 vscode在调试时,一键切换断点启用状态
- 方法一:左下角
“断点”->鼠标悬浮,会出现 “切换激活断点” 按钮,点击即可一键切换。 【左上角,可以看到局部Locals 和 全局变量Globals】

- 方法二:工具栏:
运行 -> 禁用所有断点
2.6 vscode的文件读取路径怎么写?
可以使用相对路径,也可以使用绝对路径。推荐绝对路径。如下:
# 获取当前脚本的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 构建manual_qa.txt的绝对路径
data_path = os.path.join(script_dir, 'manual_qa.txt')

使用相对路径时,注意以下问题:
使用相对路径读取文件时,必须跟
终端执行命令时的工作目录保持匹配,非则报文件不存在错误。
详见总览图中的示例。
2.7 vscode同一编辑区同时打开文件不被覆盖
问题描述:
默认vscode好像只能同时打开4个文件,打开第5个文件时,会把当前激活窗口下的文件给覆盖成第5个文件。
解决方案:
在vscode 的 “设置” 中,直接搜索
Enable Preview,找到编辑管理里的Enable Preview,去掉这个选项的勾选。具体的操作如下所示:
2.8 如何使终端输出的不同内容呈现不同颜色?
问题描述:
vscode不像pycharm那样,如果运行报错,vscode的控制台或终端不会使用不同的颜色着重提醒(是统一的黑色),这样排查问题时就要很费力的去找哪些是关键报错信息。
解决方案:
参考:美化VScode终端(报错信息用不同颜色区分)
在你要使用的python环境安装包下 PythonXY\Lib\site-packages(Anaconda位置为envs/XX/PythonXY/site-packages)中添加sitecustomize.py,内容如下:
import sys
from IPython.core.ultratb import ColorTB
sys.excepthook = ColorTB()
说明:
如果本地安装了多个python环境,就要在 用vscode打开的项目 所使用的 python安装包下操作。
比如,vscode打开的项目A,目前想使用环境1,那就要在环境1下添加sitecustomize.py 文件,如果想切到环境2,那就要在环境2下也添加sitecustomize.py 文件。
3、vscode的ssh免密连接远程机
参考:【VSCode】配置免密SSH登录远程服务器
说明:
- 如果多人ssh同一台远程机,那远程机上只用
执行一次ssh-keygen! 多次执行会把前面生成的key覆盖掉;如果已经有人使用了这个key进行免密,那多次执行会导致前面已经免密的可能就连不上了。- 多人同时连,只需把每个人客户端的
id_rsa.pub的内容复制并追加到远程机的xx/.ssh/authorized_keys文件里。
4、vscode全局setting模版配置
包括但不限于以下配置:
(1)不同类型的错误提示
(2)文件的头部、函数的注释等
参考:koroFileHeader快速上手:头部注释模板与函数注释模板
(3)代码格式化工具
(4)ssh远程机
{
"python.analysis.typeCheckingMode": "basic", // 基本校验,默认diagnosticSeverityOverrides下未配置为 none 的都会校验。
"python.analysis.diagnosticSeverityOverrides": {
// "reportUndefinedVariable": "error", // 使用了未定义的变量(最常见、关键的错误)
// "reportFunctionMemberAccess": "error", // 调用函数成员时,成员可能不存在或类型不匹配
"reportOptionalMemberAccess": "none", // 对可能为 None 的对象调用属性或方法(如 obj?.attr 的安全性)
"reportOptionalSubscript": "none", // 对可能为 None 的对象做下标操作(如 None['x'])
// "reportOptionalCall": "warning", // 对可能为 None 的对象调用函数(如 None())
"reportReturnType": "none", // 函数返回值与声明的类型不符
"reportOperatorIssue": "none", // 运算符应用错误(如 str + int)
// "reportUnnecessaryIsInstance": "error", // isinstance() 总是 True 或 False 的用法是多余的
// "reportUntypedFunctionDecorator": "error", // 函数装饰器没有类型信息或影响了类型推断
// "reportUnboundVariable": "error", // 使用了尚未赋值的局部变量
// "reportMissingImports": "error", // 无法导入模块
// 完全屏蔽类型相关提示
"reportGeneralTypeIssues": "none", // 一般类型问题,笼统的类型错误
"reportArgumentType": "none", // 调用函数时传入了错误类型的参数[这个校验太严格了,不适用]
"reportAssignmentType": "none", // 给变量赋值时,赋了不兼容的类型[这个校验太严格了,不适用]
"reportUnknownParameterType": "none", // 函数参数没有类型注解
"reportUnknownArgumentType": "none", // 实参类型未知
"reportUnknownLambdaType": "none", // lambda 表达式的参数或返回值类型不明确
"reportUnknownVariableType": "none", // 变量的类型无法确定
"reportUnknownMemberType": "none", // 类的成员类型未知
"reportMissingTypeStubs": "none", // 缺失第三方库的类型 stub 文件
"reportUnnecessaryTypeIgnoreComment": "none", // 有 # type: ignore 注释但并无报错,提示注释冗余
// 其他非类型类提示也可以按需关闭
"reportUnusedImport": "none", // 导入了模块/名称,但未使用
"reportUnusedVariable": "none", // 定义了变量但未使用(如临时变量、参数等)
"reportPrivateImportUsage": "none", // 导入了“私有”模块或变量(以 _ 开头的模块名)
"reportCallIssue": "none", // 调用异常[这个校验太严格了,不适用], 比如对象有默认值可以不用传,放开这个校验会报错
"reportIndexIssue": "none", // 对不支持下标访问的对象使用 []
"reportInvalidStringEscapeSequence": "none", // 字符串中存在非法的转义序列
"reportAttributeAccessIssue": "information" // 访问对象不存在的属性或方法。这个静态校验非常严苛,大部分地方虽然警示有问题,但实际运行是没有问题的。少部分代码是真有问题。所以为了兼容,这里先用information提示,而不是用none全部忽略。
},
"security.workspace.trust.untrustedFiles": "open",
// 头部注释
"fileheader.customMade": {
// Author字段是文件的创建者 可以在specialOptions中更改特殊属性
// 公司项目和个人项目可以配置不同的用户名与邮箱 搜索: gitconfig includeIf 比如: https://ayase.moe/2021/03/09/customized-git-config/
// 自动提取当前git config中的: 用户名、邮箱
"Author": "cf", // 同时获取用户名与邮箱
// "Author": "git config user.name", // 仅获取用户名
// "Author": "git config user.email", // 仅获取邮箱
// "Author": "OBKoro1", // 写死的固定值 不从git config中获取
"Date": "Do not edit", // 文件创建时间(不变)
// LastEditors、LastEditTime、FilePath将会自动更新 如果觉得时间更新的太频繁可以使用throttleTime(默认为1分钟)配置更改更新时间。
"LastEditors": "cf", // 文件最后编辑者 与Author字段一致
// 由于编辑文件就会变更最后编辑时间,多人协作中合并的时候会导致merge
// 可以将时间颗粒度改为周、或者月,这样冲突就减少很多。搜索变更时间格式: dateFormat
"LastEditTime": "Do not edit", // 文件最后编辑时间
// 输出相对路径,类似: /文件夹名称/src/index.js
"FilePath": "Do not edit", // 文件在项目中的相对路径 自动更新
// 插件会自动将光标移动到Description选项中 方便输入 Description字段可以在specialOptions更改
"Description": "", // 介绍文件的作用、文件的入参、出参。
},
// 函数注释
"fileheader.cursorMode": {
"description": "", // 函数注释生成之后,光标移动到这里
"param": "", // param 开启函数参数自动提取 需要将光标放在函数行或者函数上方的空白行
"return": "",
},
"fileheader.configObj": {
"autoAdd": true,
"functionWideAdd": true,
},
// ssh远程机
"remote.SSH.remotePlatform": {
"4090卡": "linux"
},
"workbench.colorTheme": "Default Light+",
"workbench.editor.enablePreview": false,
"editor.minimap.enabled": false,
"Codegeex.Privacy": false,
"workbench.editorAssociations": {
"*.xlsx": "default"
},
"python.createEnvironment.trigger": "off",
"python.analysis.diagnosticMode": "workspace",
"editor.fontLigatures": false,
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.ignoreLegacyWarning": true,
"editor.fontSize": 16,
"editor.formatOnSave": true,
"notebook.formatOnSave.enabled": true,
"files.autoSaveWorkspaceFilesOnly": true,
// 代码格式化扩展器Black Formatter
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
// 护眼色
"workbench.colorCustomizations": {
"editor.background": "#C7EDCC",
"editorGutter.background": "#C7EDCC",
"editor.lineHighlightBackground": "#B8E6BE",
"editorLineNumber.foreground": "#5A7A5A"
}
}
5、在不同的窗口打开同一个文件夹
参考:vscode 怎么在两个窗口打开同一个项目
默认情况下,vscode已经打开了文件夹A,新建窗口再次要求打开文件夹A时,默认是跳到已经打开的那个窗口,而不会在新窗口里再次打开。
解决思路:
step1:先对已经打开文件夹A的窗口执行工作区的保存,这时左侧目录title多了“工作区”3个字;
step2:再打开1个新窗口,这时在这个新窗口里就可以同时打开同一个文件夹A了。左侧目录title仅项目名称。
可以看到:


6、vscode常用插件
vscode常用插件
如果vscode中已安装Chinese (Simplified)汉化插件,但无效,解决方法:
组合按键 Ctrl+Shift+P ,输入框中填入 : configure display language ,再下拉框中选择中文简体

更多推荐

所有评论(0)