PyCharm 代码导航
代码导航快捷键
熟练掌握快捷键可以让你在代码中快速穿梭,告别鼠标的束缚。
下面是日常开发中最常用的导航快捷键。
核心导航快捷键
| 功能 | Windows/Linux | macOS | 说明 |
|---|---|---|---|
| 跳转到定义 | Ctrl+B | Cmd+B | 跳转到变量、函数或类的定义位置 |
| 查找引用 | Alt+F7 | Alt+F7 | 查找当前符号在项目中的所有引用位置 |
| 全局搜索 | 双击 Shift | 双击 Shift | 搜索文件、类、符号、操作等一切内容 |
| 最近文件 | Ctrl+E | Cmd+E | 打开最近编辑过的文件列表 |
| 后退到上一个位置 | Ctrl+Alt+Left | Cmd+[ | 回到上一个光标所在位置 |
| 前进到下一个位置 | Ctrl+Alt+Right | Cmd+] | 前进到下一个光标所在位置 |
| 跳转到行 | Ctrl+G | Cmd+L | 输入行号直接跳转 |
| 查找文件 | Ctrl+Shift+N | Cmd+Shift+O | 按文件名搜索并打开文件 |
| 文件结构 | Ctrl+F12 | Cmd+F12 | 显示当前文件的类和方法列表 |
双击 Shift 全局搜索
双击 Shift 是 PyCharm 中最强大的搜索功能。
它可以搜索文件、类名、符号、IDE 操作等一切内容,几乎可以完成任何导航需求。

使用方法:
- 快速按两次 Shift 键打开 Search Everywhere 对话框
- 输入关键词即可看到所有匹配结果
- 按 Tab 可以切换到不同搜索类别(All、Classes、Files、Symbols、Actions)
双击 Shift 是新手最早应该掌握的快捷键,用熟它就能告别在项目文件树中逐层查找的繁琐操作。
Ctrl+B 跳转到定义
将光标放在变量、函数名或类名上,按 Ctrl+B 即可跳转到其定义位置。
按住 Ctrl 键不放时,鼠标悬停在代码上也会显示可点击的链接效果。
示例:在下面的代码中,将光标放在 my_func 上按 Ctrl+B 即可跳转到函数定义处。
实例
def my_func():
"""
这是 runoob 教程的示例函数
"""
print("RUNOOB - 学习 PyCharm 快捷导航")
# 调用函数 - 将光标放在 my_func 上,按 Ctrl+B 跳转到定义
my_func()

Alt+F7 查找引用
将光标放在要查找的符号上,按 Alt+F7 查看该符号在项目中的所有引用位置。
查找结果会显示在底部的 Find 工具窗口中,点击条目即可跳转到对应位置。
代码格式化
保持代码风格的一致性是团队协作的重要基础。
PyCharm 提供了自动代码格式化功能,一键即可让代码整齐划一。
快捷键格式化
使用 Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)即可格式化当前文件。
可以选中部分代码后按快捷键,仅格式化选中部分。
格式化规则配置
格式化规则可以在 设置 > 编辑器 > 代码样式 > Python 中进行配置。

可配置的项目包括:
- 缩进大小(默认 4 个空格)
- Tab 还是空格缩进(推荐使用空格)
- 每行最大字符数(默认 120)
- 空行数量
- 导入语句排序规则
格式化前后对比
格式化前(缩进不整齐、空行混乱):
实例
def messy_function(x,y):
result=x+y
if result>10:
print("结果大于 10")
print("这行缩进不正确")
name="runoob"
print("测试",name)
格式化后(缩进统一、空行规范):
实例
def messy_function(x, y):
result = x + y
if result > 10:
print("结果大于 10")
print("这行缩进不正确")
name = "runoob"
print("测试", name)
提交代码前按一下 Ctrl+Alt+L 格式化代码,这是良好的编程习惯。
TODO 注释
TODO 注释是一种标记特殊注释的习惯,用于记录待完成的工作。
添加 TODO 注释
在 Python 代码中使用 # TODO 添加待办事项注释。
实例
class UserManager:
"""用户管理器"""
def __init__(self, db_name="runoob_users"):
self.db_name = db_name
# TODO: 实现用户登录功能
def login(self, username, password):
pass
# TODO: 添加输入验证逻辑
# TODO: 考虑使用 bcrypt 加密密码
def register(self, username, password):
"""注册新用户"""
# 当前为简化实现,仅打印提示
print(f"注册用户: {username}")
# FIXME: 这行代码在特殊情况下会出错,需要修复
def delete_user(self, user_id):
"""删除用户"""
print(f"删除用户 ID: {user_id}")
# NOTE: 以下方法依赖外部 API,需要联网
def sync_data(self):
"""同步数据"""
pass
TODO 标签类型
PyCharm 默认识别以下几种特殊注释标签:
| 标签 | 用途 |
|---|---|
| TODO | 标记需要完成的工作 |
| FIXME | 标记需要修复的问题 |
| NOTE | 添加重要说明 |
查看 TODO 列表
在工具窗口区域点击 TODO 标签,打开 TODO 工具窗口。

该窗口将项目中所有 TODO、FIXME、NOTE 注释集中显示,支持按范围过滤。

可以设置过滤范围:
- Current File:仅显示当前文件的 TODO 注释
- Scope Based:按自定义范围过滤
- All Places:显示项目中所有 TODO 注释
双击 TODO 条目即可跳转到对应的代码行。
善用 TODO 注释可以让开发过程更有条理,不会遗漏任何待处理的事项。
书签功能
书签功能允许你在代码中标记重要位置,方便快速跳转。
添加书签
将光标放在需要标记的代码行上,按 F11 添加匿名书签。
添加成功后,该行左侧会显示一个对勾标记。
按 Ctrl+F11 可以添加数字/字母书签,弹窗中选择 0-9 或 A-Z 作为书签编号。
实例
# 这里添加书签标记,方便快速定位关键配置
DATABASE_CONFIG = {
"host": "localhost", # 按 F11 添加书签
"port": 5432, # 按 Ctrl+F11,选数字 1 添加编号书签
"name": "runoob_db",
"user": "admin",
}
# 关键常量定义,可以在此添加书签
MAX_CONNECTIONS = 100 # 按 Ctrl+F11,选数字 2 添加编号书签
TIMEOUT_SECONDS = 30
查看和管理书签
按 Shift+F11 打开书签列表窗口,查看所有已添加的书签。
在书签列表窗口中:
- 双击书签条目跳转到对应位置
- 右键可以删除或重命名书签
- 支持勾选分类筛选(匿名书签和编号书签)
编号书签还可以通过 Ctrl+数字键 直接跳转,无需打开书签列表。
在大型项目中,书签是追踪多个重要代码位置的神器,建议养成使用习惯。
编辑技巧补充
除了上述功能,以下编辑技巧也能提升日常开发效率。
多光标编辑
按住 Alt 键不放,鼠标点击多个位置,可以同时编辑多行代码。
也可以使用 Ctrl+Shift+Alt+点击 在任意位置放置光标。
代码块移动
选中代码块后,按 Ctrl+Shift+Up/Down 可以上下移动整个代码块。
不需要剪切粘贴,一行代码或整个方法都可以快速调整位置。
复制整行
将光标放在某一行上(无需选中),按 Ctrl+D 可以复制整行。
这是一个非常高频的快捷键,建议立即开始使用。
删除整行
将光标放在某一行上,按 Ctrl+Y 删除整行。
相比先选中再按 Delete,这个操作快得多。
快捷键速查汇总
以下表格汇总了本章涉及的所有快捷键,建议打印或保存以便随时查阅。
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 跳转到定义 | Ctrl+B | Cmd+B |
| 查找引用 | Alt+F7 | Alt+F7 |
| 全局搜索 | 双击 Shift | 双击 Shift |
| 最近文件 | Ctrl+E | Cmd+E |
| 后退/前进 | Ctrl+Alt+Left/Right | Cmd+[/] |
| 跳转到行 | Ctrl+G | Cmd+L |
| 查找文件 | Ctrl+Shift+N | Cmd+Shift+O |
| 文件结构 | Ctrl+F12 | Cmd+F12 |
| 代码格式化 | Ctrl+Alt+L | Cmd+Option+L |
| 添加书签 | F11 | F11 |
| 数字书签 | Ctrl+F11 | Cmd+F11 |
| 书签列表 | Shift+F11 | Shift+F11 |
| 复制整行 | Ctrl+D | Cmd+D |
| 删除整行 | Ctrl+Y | Cmd+Delete |
这些快捷键不需要一次性全部记住,建议从双击 Shift 开始,每天练习两三个即可。
持续使用几周后,你就会发现编码效率有了质的提升。
