pycharm常用快捷键收藏

pycharm是我们日常开发python必不可少的ide,同类型的ide也都可以开发,用过之后还是觉得pycharm最好用,下面列举下该开发工具一些常用的快捷方式。

好用的快捷键

pycharm相关的快捷键太多了,但是大部分都是使用频率极低甚至不会使用的,这里列几个本人经常会用或者觉得比较好用的快捷键列出来。

自动导入解决依赖:Alt+Enter

当你使用某个包的某个函数,一般都是需要先导入该包,才能使用的。

有了 PyCharm 后,有多省心呢,它能够根据你的函数,自动查找该函数可能属于的包,经过你的确认后,便能自动导入。

查找的快捷键是 Alt + ↩

最终的使用效果如下:

快速开启新的一行

当你的光标不是处在一行代码的结尾,此时你想换行,一般都是先切换到行尾,再按回车。

其实这两个操作,都可以合并成一个快捷键来完成

那就是:Shift + ↩,无论你的光标在哪里,都会另起一行,效果如下:

变量名一键实现大小写的转换

常量通常都是以大写的形式存在的,若你不小心写成了小写,也可以用 Ctrl + Shift + U 这组快捷键进行转换。

效果如下:

自动纠正与自动补全

快捷键:Ctrl + Shift + ↩,自动结束代码,行末自动添加分号

快捷键:Ctrl + Shift + J, 智能的将代码拼接成一行

显示上下文信息

如果一个类的定义写得非常的长,就像下面这样子。

你处在这样一个位置,对框架代码不熟悉的人,根本不知道自己目前处在哪个类中。

PyCharm 提供了一个快捷键: Alt + Q,用来显示上下文信息。

同样如果方法体比较长,不知道在哪个方法内,也可以通过同样的方法看到现在处于哪个函数内

在子类方法中快速进入父类方法

  1. 当前光标处于子类的 reset 方法
  2. 按下快捷键 Ctrl + U ,就会进入父类的 reset 方法

重写父类方法的正确姿势

当你想要在子类里,复写父类的一个方法时。

通常都是人工定义一个函数,然后再写 super 表达式。

如果你使用了 PyCharm 还要如此笨拙的方式,那真是埋没了这么好的软件了。

在 PyCharm 中正确复写父类方法的姿势 是使用快捷键:Ctrl + O (注意是字母 O,不是数字 0)。

效果如下:

代码封装,一步到位

当一个主函数的代码行数越来越多时,代码的可读性会变得越来越差。通常的做法,是按照功能将代码进行封装成多个函数。

这个过程无非是

  1. 在合适的位置定义一个新的函数
  2. 将原有的代码拷贝至该函数中
  3. 并将原的代码替换成该函数的调用

倘若你的重构的工作量不是很大,完全可以手工来完成这些事。

但当你是在重构一个项目代码时,你可能需要一个更高效的封装技巧。

在 PyCharm 中,提供了多种形式的代码重构快捷方法,大家比较常见的可能是重构变量名:shift+F6,而今天要给大家介绍的是方法的重构,也即代码快速封装的技巧。

假如,我现在有如下一段代码,红框标出的代码放在主函数中,有些不太合适,况且这段代码不能让人一眼就看出它是在做什么事情。如何将其进行封装,对我们理清整个主程序的逻辑会有帮助

选中你要封装的代码,然后按住 Ctrl+Alt+M 后,会跳出如下界面,根据自己的需要,修改函数名,选择参数和返回值

一切就绪点击 OK,PyCharm 会自动在合适的位置为你定义一个函数名,并将你选中的代码放到里面,其中参数名和返回值也都是按照你的要求,效果如下:

跨级别跳转代码块

在 PyCharm 中如何实现跨级别代码块(从下一级跳到上一级,不可逆向)的跳转呢?

只要记住这一组快捷键就可以:

  • Ctrl + [:跳到上一级代码块开始的地方
  • Ctrl + ]:跳到上一级代码块结束的地方

缩进和反缩进

缩进的快捷键是:tab

反缩进的快捷键是:Shift + tab

快速阅读源码

在你使用一个模块的函数时,如果想查看这个函数的源码进入函数声明的位置,就可以看到源码了。

对应的快捷键有如下四组:

  1. Ctrl + B:Go to Declaration or Usages

  2. F4:Jump to Source

  3. Ctrl + Alt + B :Go to Implementation(s)

  4. Ctrl + 鼠标左键

  5. Ctrl + Shift + I

    在当前页面弹出一个小窗口,直接显示 源代码,不用像上面一样跳转到另外一个页面。

快速重构,修改所有函数与变量

交接代码时,为了后期维护的方便,通常会花时间对其代码进行了大量的重构。

变量重命名

重构代码,免不了要对变量进行重命名。

用搜索全部替换为什么不行?

比如下面这段代码,只想改myfun 里的的test_name,而对于全局下的同名变量是不应该修改的。如果你全局替换,就会有误伤。

1
2
3
4
5
6
7
8
9
10
11
12
test_name = 'wangbm'


def myfun(test_name):
name1 = test_name
name2 = test_name
name3 = test_name
name4 = test_name
name5 = test_name
name6 = test_name
name7 = test_name
name8 = test_name

这时候可以使用 PyCharm 的 Refactor 功能,它会自动匹配作用域,既做到批量更改,也做到不误伤。

操作方法很简单,先选中你的变量,然后使用快捷键 Shift+F6,就可以直接重命名了。

函数重命名

如果是对函数重命名,使用 Shift + F6 也是可以的,只不过要点很多下。

更合适的方法是使用 Ctrl + F6,演示过程如下

选择执行:Execute Selection in Console

当你想写一段简单的测试代码时,或许你会这样子

  1. 使用 Python Shell 直接写。缺点是没有自动补全。
  2. 在 PyCharm 中新开一个文件。缺点是要新创建一个文件,完了后还要删除。

今天再给大家介绍一种新的方法,可以完全避开上面两种方式的缺点。

那就是 Execute Selection in Console,可以说是 Run in Anywhere.

只要在当前文件中,写好代码,然后光标选择后,右键点击 Execute Selection in Python Console 或者 使用快捷键 option + shift + E (windows 上是 alt + shift + E)。

接着 PyCharm 就会弹出一个 Python Console 窗口,然后运行你所选择的代码。

可以发现其中的一个亮点,就是使用这种方法,PyCharm 会自动帮我们处理好缩进(我们选择时,前面有缩进,可是在执行时,会自动去掉前面多余的缩进)

脱离鼠标的代码区域选择:Extend Selection

根据选中的区域的大小,可以分为:

  1. 选中单词
  2. 选中表达式
  3. 选中单行
  4. 选中代码块
  5. 选中函数
  6. 选中类

对于代码区域,通常都要借助鼠标才能完成,这里给你推荐一组快捷键,可以让脱离鼠标进行区域的选择:

  • Ctrl + W):扩大选中的区域
  • Ctrl + Shift + W:缩小选中的区域

演示的效果如下:

这种用法,适用于:

  1. 使用 mac 笔记本,不使用鼠标,只使用触控板的人群
  2. 想要选中一个上千行的类或函数,进行操作的人

程序结束,照样可以调试

假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内容。正则这种东西,有几个人能够一步到位的呢,通常都需要经过很多次的调试才能按预期匹配。在我们改了一次正则后,运行了下,需要重新向网站抓取请求,才能发现没有匹配上,然后又改了一版,再次运行同样需要发起请求,结果还是发现还是没有匹配上,往往复复,正则不好的同学可能要进行几十次的尝试。

(上面这个例子可能不太贴切,毕竟是有很多种方法实现不用重新发请求,只是列举了一种很笨拙且低效的调试过程,你看看就好了)

而我们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工作。如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以在不需要重新运行项目或脚本,就可以通过执行命令表达式,来调整我们的代码,进行我们的正则调试。

答案当然是有。

假如我在调试如下几行简单的代码。在第 3 行处打了个断点。然后点击图示位置 Show Python Prompt 按钮。

就进入了 Python Shell 的界面,这个Shell 环境和我们当前运行的程序环境是打通的,变量之间可以互相访问,这下你可以轻松地进行调试了。

快速移动/拷贝文件:F6/F5

当你要把一个文件拖动到另外一个目录的时候,正常人的操作有两种:

1、直接拖拽过去(个人感觉这种才是最方便的)

2、先剪切,再粘贴

PyCharm 对于这种重构操作,有更方便的入口。

先选中文件,然后只要按住 F6 就会弹出一个 Move Module 的窗口,直接选目标目录就可以。

除了移动之外 ,拷贝也是可以的。快捷键变成了 F5

显示类继承关系图:Show Diagrams

在阅读一些比较庞大的项目时,如果类的继承关系比较复杂,会给我们阅读源码带来不小的阻碍。

面对这种情况,本篇的这个技巧就能派上用场了。

在你想查看继承关系的 类 中,右键选择 Diagrams -> Show Diagram

就会新增一个窗口,使用 UML 为你展示该类的继承关系。

把文件设置为只读:Read-Only

如果担心代码因为被自己不小心修改到,可以把该文件设置为只读。

方法很简单,只要点击右下角的 小锁 锁上该文件就可以。

锁上后,想编辑时,就会弹出下面的窗口。

只要你点击上面的 OK ,就可以编辑了。

因为这个功能有限,只能作一个提醒,没办法作强制约束。

在文件管理器/Finder 中打开文件夹

使用快捷键:Alt + F1

一键预览模块的文档

Ctrl + 鼠标左键 ,可以实现函数跳转查看源码, 这几乎是每一个 PyCharmer 都会的一个惯用技巧。

这里再另外介绍两个类似的小技巧,快速 查看函数文档预览源代码

在函数的开头处,使用三个引号 " 包含的内容,叫做函数文档 (DocString)。

在编写代码时,顺便写好函数的接口文档,是一个很好的编码习惯。它介绍了该函数的参数类型及说明,返回值类型及范例,写得好一点的还会写出 几个简单的 Example Usage 有助于理解使用。在这一点上,Flask 可以说做得相当好。这边随便截一个 Werkzeug 的例子。

假如我们在使用这个类的时候,忘记了这个用法,可以按住 Ctrl + Q,在当前页面就可以快速预览 LocalStack 的接口文档。

同样的,如果你对这个类或者函数的代码逻辑感兴趣,也可以使用快速预览的方式在当前页面展示源代码。快捷键是:Ctrl + shift + i 。效果如下

如果 PyCharm 检测到的同名函数有多个,可以点这里进行选择查看

这两个快捷键比起使用 Ctrl + 鼠标左键 跳进源代码来说,更加方便,,就像微信小程序一样,用完即焚,不会新产生一个标签页,也不需要来回跳转页面。

显示当前类的继承树:Type Hierarchy

第一种方法

使用快捷键 Ctrl + H

第二种方法

使用快捷键 Ctrl + O

显示当前方法的调用树:Method Hierarchy

按住快捷键 Ctrl + Alt + H

使用模板,快速捕获异常

当你想要对一个代码块进行异常捕获时,你是怎么做的呢?

先在上面写个 try,然后对代码块缩进,然后写 excep ..

这种方法,比较生硬,而且效率极差。

这里推荐一种方法,可以使用 try...except... 快速包围代码。

效果如下

  1. 先选中代码块
  2. 按住 Ctrl + Alt + T
  3. 选择 try/except 模板

爬虫必备,一键加引号

写爬虫的时候,为了方便,经常会从浏览器 F12 里拷贝对应请求的 headers 到我们的代码中。

但是从浏览器中拷贝的 headers 是没有加引号的,但是我们 Python 中 Headers 是要以字典形式传参数的,因此在从浏览器拷贝 Headers 后,都要手动加引号,非常的麻烦。

目前对于这个问题,还没有相关的插件,通用的解决方法是:使用正则表达式进行替换。

  1. 选中需要快速加引号的区域

  2. 按住Ctrl + R (windows 是 ctrl + r)填写正则匹配表达式

    1
    2
    第一行【查找】:  (.*?):(.*)
    第二行【替换】: '$1':'$2',
  3. 勾选上.* 这个选项,开启正则匹配

  4. 点击替换全部:Replace all

整体的操作过程,如下图

常用快捷键

快捷键功能
Ctrl + Q快速查看文档
Ctrl + F1显示错误描述或警告信息
Ctrl + /行注释(可选中多行)
Ctrl + Alt + L代码格式化
Ctrl + Alt + O自动导入
Ctrl + Alt + I自动缩进
Tab / Shift + Tab缩进、不缩进当前行(可选中多行)
Ctrl+C/Ctrl+Insert复制当前行或选定的代码块到剪贴板
Ctrl + D复制选定的区域
Ctrl + Y删除当前行
Shift + Enter换行(不用鼠标操作了)
Ctrl +J插入模版
Ctrl + Shift ++/-展开/折叠全部代码块
Ctrl + Numpad+全部展开
Ctrl + Numpad-全部折叠
Ctrl + Delete删除到字符结束
Ctrl + BackSpace删除到字符开始
Ctrl + Shift + F7将当前单词在整个文件中高亮,F3移动到下一个,Esc取消高亮。
Alt + up/down方法上移或下移动
Alt + Shift + up/down当前行上移或下移动
Ctrl + B/鼠标左键转到方法定义处
Ctrl + W选中增加的代码块
Shift + F6方法或变量重命名
Ctrl + E最近访问的文件
Esc从其他窗口回到编辑窗口
Shift + Esc隐藏当前窗口,焦点到编辑窗口
F12回到先前的工具窗口

全部快捷键

1、编辑(Editing)

快捷键功能
Ctrl + Space基本的代码完成(类、方法、属性)
Ctrl + Alt + Space快速导入任意类
Ctrl + Shift + Enter语句完成
Ctrl + P参数信息(在方法中调用参数)
Ctrl + Q快速查看文档
Shift + F1外部文档
Ctrl + 鼠标简介
Ctrl + F1显示错误描述或警告信息
Alt + Insert自动生成代码
Ctrl + O重新方法
Ctrl + Alt + T选中
Ctrl + /行注释
Ctrl + Shift + /块注释
Ctrl + W选中增加的代码块
Ctrl + Shift + W回到之前状态
Ctrl + Shift + ]/[选定代码块结束、开始
Alt + Enter快速修正
Ctrl + Alt + L代码格式化
Ctrl + Alt + O自动导入
Ctrl + Alt + I自动缩进
Tab / Shift + Tab缩进、不缩进当前行
Ctrl+X/Shift+Delete剪切当前行或选定的代码块到剪贴板
Ctrl+C/Ctrl+Insert复制当前行或选定的代码块到剪贴板
Ctrl+V/Shift+Insert从剪贴板粘贴
Ctrl + Shift + V从最近的缓冲区粘贴
Ctrl + D复制选定的区域或行到后面或下一行
Ctrl + Y删除当前行
Ctrl + Shift + J添加智能线
Ctrl + Enter智能线切割
Shift + Enter下一行另起一行
Ctrl + Shift + U在选定的区域或代码块间切换
Ctrl + Delete删除到字符结束
Ctrl + BackSpace删除到字符开始
Ctrl + Numpad+/-展开折叠代码块
Ctrl + Numpad+全部展开
Ctrl + Numpad-全部折叠
Ctrl + F4关闭运行的选项卡

2、查找/替换(Search/Replace)

快捷键功能
F3下一个
Shift + F3前一个
Ctrl + R替换
Ctrl + Shift + F全局查找
Ctrl + Shift + R全局替换

3、运行(Running)

快捷键功能
Alt + Shift + F10运行模式配置
Alt + Shift + F9调试模式配置
Shift + F10运行
Shift + F9调试
Ctrl + Shift + F10运行编辑器配置
Ctrl + Alt + R运行manage.py任务

4、调试(Debugging)

快捷键功能
F8跳过
F7进入
Shift + F8退出
Alt + F9运行游标
Alt + F8验证表达式
Ctrl + Alt + F8快速验证表达式
F9恢复程序
Ctrl + F8断点开关
Ctrl + Shift + F8查看断点

5、导航(Navigation)

快捷键功能
Ctrl + N跳转到类
Ctrl + Shift + N跳转到符号
Alt + Right/Left跳转到下一个、前一个编辑的选项卡
F12回到先前的工具窗口
Esc从其他窗口回到编辑窗口
Shift + Esc隐藏当前窗口,焦点到编辑窗口
Ctrl + Shift + F4关闭主动运行的选项卡
Ctrl + G查看当前行号、字符号
Ctrl + E最近访问的文件
Ctrl+Alt+Left/Right后退、前进
Ctrl+Shift+BackSpace导航到最近编辑区域
Alt + F1查找当前文件或标识
Ctrl+B / Ctrl+Click跳转到声明
Ctrl + Alt + B跳转到实现
Ctrl + Shift + I查看快速定义
Ctrl + Shift + B跳转到类型声明
Ctrl + U跳转到父方法、父类
Alt + up/down跳转到上一个、下一个方法
Ctrl + ]/[跳转到代码块结束、开始
Ctrl + F12弹出文件结构
Ctrl + H类型层次结构
Ctrl + Shift + H方法层次结构
Ctrl + Alt + H调用层次结构
F2 / Shift + F2下一条、前一条高亮的错误
F4 / Ctrl + Enter编辑资源、查看资源
Alt + Home显示导航条F11书签开关
Ctrl + Shift +F11书签助记开关
Shift + F11显示书签
快捷键功能
Alt + F7/Ctrl + F7文件中查询用法
Ctrl + Shift + F7文件中用法高亮显示
Ctrl + Alt + F7显示用法

7、重构(Refactoring)

快捷键功能
F5复制
F6剪切
Alt + Delete安全删除
Shift + F6方法或变量重命名
Ctrl + F6更改签名
Ctrl + Alt + N内联
Ctrl + Alt + M提取方法
Ctrl + Alt + V提取属性
Ctrl + Alt + F提取字段
Ctrl + Alt + C提取常量
Ctrl + Alt + P提取参数

8、控制VCS/Local History

快捷键功能
Ctrl + K提交项目
Ctrl + T更新项目
Alt + Shift + C查看最近的变化
Ctrl + Alt + J当前行使用模版

9、模版(Live Templates)

快捷键功能
Ctrl + Alt + J当前行使用模版
Ctrl +J插入模版

10、基本(General)

快捷键功能
Ctrl + Alt + Y同步
Ctrl + Shift + F12最大化编辑开关
Alt + Shift + F添加到最喜欢
Alt + Shift + I根据配置检查当前文件
Ctrl + Alt + S打开设置页
Ctrl + Shift + A查找编辑器里所有的动作
Ctrl + Tab在窗口间进行切换

文献参考来源:https://pycharm.iswbm.com/index.html