1.2Vscode学习(可简)
info
Python 版本:3.14
GCC 版本:13.3.0
系统:Windows11 + WSL2(Ubuntu24.04)
编辑器:VSCode/Cursor
编辑器
- VSCode(Visual Studio Code)是一款通用跨平台的编辑器
它不会运行程序,它需要安装相应的语言包才能运行程序。它可以编辑任何语言的程序,支持几乎所有主流的开发语言的语法高亮、智能代码补全等。安装过程全部勾选。
- 注意与 Visual Studio 区别
推荐扩展
使用 VSCode 或 Cursor,安装以下扩展:
扩展名称 | 功能描述 |
---|---|
Remote - SSH | 通过SSH连接远程服务器,在本地编辑远程文件 |
C/C++ | 为 C/C++ 语言提供代码高亮、智能感知(自动补全)、代码格式化和调试等核心功能。 |
Python | 提供Python语言基础支持,包括语法高亮、代码补全和格式化 |
Pylance | 高性能Python语言服务器,提供类型检查和智能提示 |
Python Debugger | 支持Python代码的断点调试、变量监控和单步执行 |
Ruff Formatter | 自动格式化Python代码,保持一致的代码风格 |
Jupyter | 提供Jupyter Notebook支持,支持在VSCode中编辑和运行Jupyter Notebook |
Error Lens | 直接在代码行内展示错误和警告信息,无需悬停鼠标 |
Office Viewer | 在VSCode中直接预览Word、Excel等Office文档并附赠IDE主题 |
Markmap | 以思维导图的形式展示markdown结构 |
Markdown All in One | 提供Markdown编辑、预览、导出等功能 |
SQLite Viewer | 提供SQLite数据库的可视化界面,支持数据浏览和查询 |
Hex Editor | 提供十六进制编辑器,支持编辑二进制文件 |
Live Server | 提供本地开发服务器,支持实时预览和自动刷新网页 |
Git History | 提供Git历史记录的可视化界面,支持查看文件的修改历史 |
Gitmoji | 在VSCode中使用Gitmoji,支持在提交时使用Gitmoji |
Docker | 管理Docker容器,支持创建、运行和调试容器化应用 |
易用性配置
- 推荐颜色主题:Dark Modern
- 推荐图标主题:office material
- 推荐字体:Fira Code(可选连字符显示)
- Cursor侧边栏方向修改:
workbench.activityBar.orientation
,改为vertical
工作区的概念
工作区是你项目文件的集合,可以包含一个或多个文件夹。
操作类型 | 功能 | 快捷键/操作方式 |
---|---|---|
打开工作区 | 打开文件夹 | Ctrl + K, Ctrl + O 或 文件 > 打开文件夹 |
打开工作区文件 | Ctrl + K, Ctrl + W 或双击 .code-workspace 文件 | |
管理工作区 | 添加文件夹到工作区 | 文件 > 将文件夹添加到工作区 |
保存工作区 | 文件 > 将工作区另存为 (生成 .code-workspace 文件) | |
移除文件夹 | 右键文件夹 > 从工作区中删除文件夹 | |
工作区设置 | 独立设置 | 每个工作区可以有独立的设置 (.vscode/settings.json ) |
扩展和主题 | 可以为不同项目配置不同的扩展和主题 |
编辑器操作
操作类型 | 功能 | 快捷键 |
---|---|---|
视图控制 | 放大 | Ctrl + + 或 Ctrl + 滚轮上 |
缩小 | Ctrl + - 或 Ctrl + 滚轮下 | |
重置缩放 | Ctrl + 0 | |
快速导航 | 跳转到指定行 | Ctrl + G (输入行号) |
跳转到文件开头 | Ctrl + Home | |
跳转到文件结尾 | Ctrl + End | |
跳转到匹配的括号 | Ctrl + Shift + \ | |
分屏操作 | 垂直分屏 | Ctrl + \ |
关闭当前编辑器 | Ctrl + W | |
切换编辑器组 | Ctrl + 1/2/3 | |
在组间移动文件 | Ctrl + Alt + ←/→ | |
文件操作 | 新建文件 | Ctrl + N |
保存文件 | Ctrl + S | |
保存所有文件 | Ctrl + K, S | |
关闭文件 | Ctrl + W | |
重新打开已关闭的文件 | Ctrl + Shift + T |
命令框
命令框是编辑器最强大的功能之一,按 Ctrl + P
打开。
搜索模式详解
前缀 | 功能 | 快捷键 | 使用示例 |
---|---|---|---|
无前缀 | 文件搜索 | Ctrl + P | app.py *.js |
> | 命令搜索 | Ctrl + Shift + P | >Python: Run File |
@ | 当前文件符号 | Ctrl + Shift + O | @function_name |
# | 工作区符号 | Ctrl + T | #ClassName |
: | 跳转行号 | Ctrl + G | :25 |
? | 帮助信息 | 无 | ?shortcuts |
实用技巧
技巧 | 说明 | 操作方式 |
---|---|---|
模糊搜索 | 文件搜索支持模糊匹配 | 输入 apy 可以找到 app.py |
模式切换 | 从命令模式切换到文件搜索 | 按 Backspace 删除 > 符号 |
最近文件 | 查看最近打开的文件和文件夹 | Ctrl + R |
符号搜索 | 在大文件中快速定位函数、类、变量 | 使用 @ 和 # 前缀搜索 |
搜索和替换
操作类型 | 功能 | 快捷键 |
---|---|---|
基本搜索 | 当前文件搜索 | Ctrl + F |
全局搜索 | Ctrl + Shift + F | |
查找下一个 | F3 或 Enter | |
查找上一个 | Shift + F3 | |
替换操作 | 当前文件替换 | Ctrl + H |
全局替换 | Ctrl + Shift + H | |
替换当前匹配 | Ctrl + Shift + 1 | |
替换所有匹配 | Ctrl + Alt + Enter | |
高级选项 | 区分大小写 | 点击 Aa 按钮或 Alt + C |
全词匹配 | 点击 Ab 按钮或 Alt + W | |
正则表达式 | 点击 .* 按钮或 Alt + R |
正则表达式示例
\d+ ## 匹配数字
[a-zA-Z]+ ## 匹配字母
\w+\s*=\s* ## 匹配变量赋值
function\s+(\w+) ## 匹配函数定义
搜索技巧
技巧 | 说明 | 示例 |
---|---|---|
排除文件夹 | 在搜索框中添加排除规则 | !node_modules |
指定文件类型 | 只搜索特定类型文件 | *.py 只搜索Python文件 |
使用占位符 | 替换时引用正则分组 | 用 $1 $2 引用正则分组 |
调试功能
操作类型 | 功能 | 快捷键/操作方式 |
---|---|---|
断点操作 | 设置/取消断点 | 点击行号左侧或 F9 |
条件断点 | 右键行号 > 添加条件断点 | |
日志断点 | 右键行号 > 添加记录点 | |
禁用断点 | 右键断点 > 禁用断点 | |
调试控制 | 开始调试 | F5 |
开始执行(不附加调试器) | Ctrl + F5 | |
停止调试 | Shift + F5 | |
重启调试 | Ctrl + Shift + F5 | |
继续执行 | F5 | |
单步跳过 | F10 | |
单步跳入 | F11 | |
单步跳出 | Shift + F11 | |
调试面板 | 变量 | 查看当前作用域的变量值 |
监视 | 添加表达式进行实时监控 | |
调用堆栈 | 查看函数调用链 | |
断点 | 管理所有断点 |
调试控制台
调试暂停时,可以在控制台中执行以下操作:
操作 | 说明 | 示例 |
---|---|---|
查看变量值 | 直接输入变量名 | my_variable |
执行表达式 | 运行计算表达式 | len(my_list) |
修改变量 | 动态修改变量值 | my_var = new_value |
调用函数 | 执行函数调用 | my_function() |
多光标编辑
多光标功能大幅提升编辑效率。
操作类型 | 功能 | 快捷键 |
---|---|---|
创建多光标 | 按住Alt点击 | 在任意位置添加光标 |
选择下一个相同单词 | Ctrl + D | |
选择所有相同单词 | Ctrl + Shift + L | |
在选中区域每行末尾添加光标 | Alt + Shift + I | |
列选择模式 | 矩形选择 | Shift + Alt + 鼠标拖拽 |
向下/上扩展列选择 | Ctrl + Shift + Alt + ↓/↑ | |
向左/右扩展列选择 | Ctrl + Shift + Alt + ←/→ | |
多光标技巧 | 撤销最后一个光标 | Ctrl + U |
跳过当前选择 | Ctrl + K, Ctrl + D | |
选择所有匹配项 | Ctrl + Shift + L |
实用场景
## 同时修改多个变量名
old_name = 1
old_name = 2 ## Ctrl+D选择所有old_name,直接输入new_name
old_name = 3
代码格式化
操作类型 | 功能 | 快捷键 |
---|---|---|
注释操作 | 切换行注释 | Ctrl + / |
切换块注释 | Shift + Alt + A | |
批量注释选中行 | 选中多行后 Ctrl + / | |
缩进操作 | 增加缩进 | Tab 或 Ctrl + ] |
减少缩进 | Shift + Tab 或 Ctrl + [ | |
自动调整缩进 | Ctrl + Shift + I | |
代码格式化 | 格式化整个文档 | Shift + Alt + F |
格式化选中代码 | Ctrl + K, Ctrl + F | |
保存时自动格式化 | 设置中启用 Format On Save | |
代码折叠 | 折叠当前块 | Ctrl + Shift + [ |
展开当前块 | Ctrl + Shift + ] | |
折叠所有 | Ctrl + K, Ctrl + 0 | |
展开所有 | Ctrl + K, Ctrl + J |
禅模式
禅模式提供无干扰的编程环境,适合专注编码。
操作类型 | 功能 | 操作方式 |
---|---|---|
进入禅模式 | 快捷键 | Ctrl + K, Z |
菜单 | 查看 > 外观 > 禅模式 | |
退出禅模式 | 按键 | 按两次 Esc 键 |
快捷键 | 再次按 Ctrl + K, Z |
禅模式特点
特点 | 说明 |
---|---|
隐藏UI元素 | 隐藏所有UI元素(侧边栏、状态栏、面板) |
全屏显示 | 全屏显示代码编辑器 |
居中布局 | 居中显示代码内容 |
可自定义 | 可自定义禅模式设置 |
禅模式设置
在设置中搜索 zen
可以配置:
设置项 | 功能 |
---|---|
zenMode.centerLayout | 是否居中布局 |
zenMode.fullScreen | 是否全屏显示 |
zenMode.hideLineNumbers | 是否隐藏行号 |
zenMode.hideTabs | 是否隐藏标签页 |
其他实用功能
操作类型 | 功能 | 快捷键/操作方式 |
---|---|---|
快速操作 | 复制行 | Shift + Alt + ↓/↑ |
移动行 | Alt + ↓/↑ | |
删除行 | Ctrl + Shift + K | |
在上方插入行 | Ctrl + Shift + Enter | |
在下方插入行 | Ctrl + Enter | |
选择操作 | 选择整行 | Ctrl + L |
扩展选择 | Shift + Alt + → | |
收缩选择 | Shift + Alt + ← | |
选择到行尾 | Shift + End | |
选择到行首 | Shift + Home | |
面板管理 | 切换侧边栏 | Ctrl + B |
切换面板 | Ctrl + J | |
切换终端 | Ctrl + ~ | |
切换输出面板 | Ctrl + Shift + U | |
文件浏览器 | 新建文件 | 点击文件夹右侧的 + 图标 |
新建文件夹 | Ctrl + Shift + 新建文件夹 | |
重命名 | F2 或右键选择重命名 | |
删除 | Delete 键或右键删除 |
小贴士
功能 | 说明 | 操作方式 |
---|---|---|
自定义快捷键 | 修改或添加快捷键 | 文件 > 首选项 > 键盘快捷方式 |
设置同步 | 同步设置、扩展、快捷键 | 登录账户后自动同步 |
工作区推荐扩展 | 为项目配置推荐扩展 | 在 .vscode/extensions.json 中配置 |
代码片段 | 创建自定义代码片段 | Ctrl + Shift + P 搜索 snippet |
颜色主题 | 快速切换主题 | Ctrl + K, Ctrl + T |
字体大小 | 调整字体大小 | Ctrl + +/- 临时调整,settings.json 中修改 editor.fontSize 永久设置 |
终端补全
终端中出现自动补全提示时,可以通过以下方式接受补全:右箭头键 (→) 或 Tab键
个性化设置
设置项 | 说明 | 操作方式 |
---|---|---|
主题颜色 | 选择喜欢的主题颜色 | 设置中点击主题颜色,推荐 深色+ |
保存时自动格式化 | 保存文件时自动格式化代码 | 设置中搜索 format on save ,勾选即可 |
运行代码
测试:在 Vscode 中新建一个 xxx.py 文件,输入以下内容:
print("hello world")
运行方式 | 操作方法 | 说明 |
---|---|---|
方式1 | 点击右上角的三角形运行按钮 | GUI界面运行 |
方式2 | 在终端输入 python xxx.py | 直接运行 |
方式3 | 在终端输入 python -m xxx.py | 把模块当作脚本来启动 |
可以看到输出结果为 hello world
。
两种运行方式的区别
运行方式 | 说明 | __name__ 的值 |
---|---|---|
python xxx.py | 直接运行 | '__main__' |
python -m xxx.py | 把模块当作脚本来启动 | '__main__' |
代码调式
断点设置
在IDE中点击行号左侧设置断点,程序执行到断点时会暂停,允许检查变量状态和程序流程 。
调试控制命令
命令 | 功能 | 使用场景 |
---|---|---|
Continue (F5) | 继续执行到下一个断点或程序结束 | 跳过已检查的代码段 |
Step Over (F10) | 逐行执行,函数调用作为一步 | 关注主流程,不深入函数内部 |
Step Into (F11) | 逐行执行,进入函数内部 | 需要调试函数内部逻辑 |
Step Out (Shift+F11) | 执行完当前函数并返回调用处 | 快速退出函数调试 |
调试流程演示
数据处理与单例模式调试示例
class DataProcessor:
_instance = None
_initialized = False
def __new__(cls): # 断点1: 观察单例创建
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
def __init__(self):
if not DataProcessor._initialized:
self.data = [] # 断点2: 确保初始化只执行一次
DataProcessor._initialized = True
print("DataProcessor initialized")
def process_data(self, items):
"""处理数据列表"""
results = []
for item in items: # 断点3: 循环调试起点
processed = self._transform_item(item)
results.append(processed)
self._log_progress(len(results)) # 断点4: 观察进度
return results
def _transform_item(self, item):
"""转换单个数据项"""
return item * 2 + 1
def _log_progress(self, count): # 断点5: 内部方法调试
print(f"Processed {count} items")
def main():
processor1 = DataProcessor() # 断点6: 第一次实例化
processor2 = DataProcessor() # 断点7: 验证单例模式
print(f"Same instance: {processor1 is processor2}")
test_data = [1, 2, 3, 4, 5]
result = processor1.process_data(test_data)
print(f"Results: {result}")
if __name__ == "__main__":
main()
在断点1处开始调试:
- Step Into (F11): 进入
__new__
方法内部,观察单例模式的实现逻辑 - Step Over (F10): 在断点6处,将
DataProcessor()