文章首发于 微信公众号:Python编程时光
PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能。
一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带来质的提升。今天我就来写一写我在平时开发中一直在用的,可以明显改善开发效率的使用技巧,一旦学会,受用一生。
这是本系列 PyCharm 的高效使用技巧的第一篇。按照惯例,本次还是分享 5 个。
本系列其他文章如下,若还没看的,你可以点击查阅
21. 随处折叠,实现代码自由
PyCharm 里代码块的折叠功能,相当的显眼,在代码编辑框的左侧,你可以发现有 +
也有 -
,很容易理解 +
代表代码块被折叠了可以点此展开,而 -
代表这个代码块处于展开状态可以点此折叠。
如果你和我一样是个键盘党,你可以使用快捷(Mac:按住Command键,再按+
或者-
,Windows:按住Ctrl键,再按+
或者-
)进行快速反折叠/折叠。
代码块的折叠和反折叠,应该是一个代码编辑器的基本功能。在这一点上, PyCharm 做为一个 IDE,在这一点上势必要做得更出色,事实证明,它做到了。
从上面,我们知道只有代码块才支持缩放,那什么样的代码PyCharm才会认为是一个代码块呢?其严格地定义我没有找到,从经验来看,一个类,一个函数,一个for循环,一个while循环,一个多行注释等都是代码块。都可以进行折叠、反折叠。
有时候,我们并不希望整块代码进行折叠,而只想对其他一大段暂时对我们无用的代码进行折叠。那能做到吗?
答案是可以的。
只要你先选中你想折叠的代码,再按住 Command 紧接着按住 .
就可以了。效果如下:
(GIF动态只播放两次,重播请刷新页面)
22. 重构操作,一步到位
最近有一位同事走了,由我来接手他的全部工作。
可能由于我有代码洁癖,我花了一个星期对其代码进行了大量的重构。
重构代码,免不了要对变量进行重命名。
如果一个一个改,显然不太智能,要知道我们是在用IDE,你也许会说,用搜索全部替换不就行了?还真不行。
比如下面这段代码,我只想改myfun 里的的test_name,而对于全局下的同名变量是不应该修改的。如果你全局替换,就会有误伤。
这时候,我们如何做呢?
可以使用 PyCharm 的 Refactor 功能,它会自动匹配作用域,既做到批量更改,也做到不误伤。
操作方法很简单,先选中你的变量,然后使用快捷键 Shift+F6,就可以直接重命名了。
(GIF动态只播放两次,重播请刷新页面)
23. 复杂操作,录制成宏
如果你在使用PyCharm 的时候,遇到有一些操作是比较复杂(步骤多),且使用频率特别高。
那可以考虑一下,使用其自带的宏录制工具。
它会将你的一连串操作,录制下来。等你想用的时候,直接调用就行了。
这边,我以录制一个 删除函数
的宏为例:先按上面的方法折叠函数,再按 Command+y 删除该行,就删除了该函数。
做录制方法如下:
(GIF动态只播放两次,重播请刷新页面)
录制好后,你可以先定位到你要删除的函数处,点菜单栏 Edit - Macro 然后选择我们刚刚录制的宏,就可以播放宏了。
这样播放宏显得有点繁琐,个人建议你为这个宏定义一个快捷键,这样会更方便播放宏。
设置快捷键时,注意不要和已有的快捷键冲突。
设置好后,查看 Macro,发现PyCharm已经将这个快捷键绑定给这个宏。
之后你就可以使用这个快捷键删除一个函数(其实这只是删除一个代码块,但是这里只讨论设置方法)。
24. 多行标签页,一览无余
PyCharm 打开一个文件,就占用一个标签面。
你有没有发现,不知不觉地,打开的文件越来越多,多到一行标签都装不下,装不下的标签页 PyCharm 会将其隐藏起来,并以数字的形式告诉你隐藏了几个文件。
点击数字5,你才可以查看隐藏了哪些文件。
这时你肯定会说,一行装不下 PyCharm 为什么不能多行显示呢?
答案是,不是不能,而是需要你设置。
如下图,将单行显示取消勾选即可。
设置完后,有哪些文件就非常清晰了。
25. 应用搜索,阅读源码必备
你平时若有阅读框架源码的需求或习惯,那你一定要来掌握这个技能。
在阅读源码时,代码的入口、流程、走向特别重要。
假设你现在知道了一个特别关键的类,你特别想知道是哪里调用了这个类,你想知道源头,知道整个调用流程。
这个时候你使用全局搜索,就会有很多的干扰信息。
这个时候,你急需有一种方法,可以快速给你列出有哪些地方调用了这个类。
快捷键:Mac:Command+Option+F7 ,Windows:Ctrl+Alt+F7
如下图所示,按下快捷键后可以很轻松地看见调用列表。
如果你嫌这快捷键太长了,可以使用 鼠标中键
点击这个类,可以达到同样的效果。
原文地址:https://www.cnblogs.com/wongbingming/p/11122994.html