受用一生的高效 PyCharm 使用技巧(五)
21. 随处折叠,实现代码自由
PyCharm 里代码块的折叠功能,相当的显眼,在代码编辑框的左侧,你可以发现有 +
也有 -
,很容易理解 +
代表代码块被折叠了可以点此展开,而 -
代表这个代码块处于展开状态可以点此折叠。
如果你和我一样是个键盘党,你可以使用快捷(Mac:按住Command键,再按+
或者-
)进行快速反折叠/折叠。
代码块的折叠和反折叠,应该是一个代码编辑器的基本功能。在这一点上, PyCharm 做为一个 IDE,在这一点上势必要做得更出色,事实证明,它做到了。
从上面,我们知道只有代码块才支持缩放,那什么样的代码PyCharm才会认为是一个代码块呢?其严格地定义我没有找到,从经验来看,一个类,一个函数,一个for循环,一个while循环,一个多行注释等都是代码块。都可以进行折叠、反折叠。
有时候,我们并不希望整块代码进行折叠,而只想对其他一大段暂时对我们无用的代码进行折叠。那能做到吗?
答案是可以的。
只要你先选中你想折叠的代码,再按住 Command (Windows:Ctrl键)紧接着按住 .
就可以了。效果如下:
(GIF动态只播放两次,重播请刷新页面)
22. 重构操作,一步到位
最近有一位同事走了,由我来接手他的全部工作。
可能由于我有代码洁癖,我花了一个星期对其代码进行了大量的重构。
重构代码,免不了要对变量进行重命名。
如果一个一个改,显然不太智能,要知道我们是在用IDE,你也许会说,用搜索全部替换不就行了?还真不行。
比如下面这段代码,我只想改myfun 里的的test_name,而对于全局下的同名变量是不应该修改的。如果你全局替换,就会有误伤。
这时候,我们如何做呢?
可以使用 PyCharm 的 Refactor 功能,它会自动匹配作用域,既做到批量更改,也做到不误伤。
操作方法很简单,先选中你的变量,然后使用快捷键 Shift+F6,就可以直接重命名了。
(GIF动态只播放两次,重播请刷新页面)
23. 复杂操作,录制成宏
如果你在使用PyCharm 的时候,遇到有一些操作是比较复杂(步骤多),且使用频率特别高。
那可以考虑一下,使用其自带的宏录制工具。
它会将你的一连串操作,录制下来。等你想用的时候,直接调用就行了。
这边,我以录制一个 删除函数
的宏为例:先按上面的方法折叠函数,再按 Command+y (Windows:Ctrl+y)删除该行,就删除了该函数。
做录制方法如下:
(GIF动态只播放两次,重播请刷新页面)
录制好后,你可以先定位到你要删除的函数处,点菜单栏 Edit - Macro 然后选择我们刚刚录制的宏,就可以播放宏了。
这样播放宏显得有点繁琐,个人建议你为这个宏定义一个快捷键,这样会更方便播放宏。
设置快捷键时,注意不要和已有的快捷键冲突。
设置好后,查看 Macro,发现PyCharm已经将这个快捷键绑定给这个宏。
之后你就可以使用这个快捷键删除一个函数(其实这只是删除一个代码块,因为这里只是为了演示设置方法而随便想了个例子)。
24. 多行标签页,一览无余
PyCharm 打开一个文件,就占用一个标签面。
你有没有发现,不知不觉地,打开的文件越来越多,多到一行标签都装不下,装不下的标签页 PyCharm 会将其隐藏起来,并以数字的形式告诉你隐藏了几个文件。
点击数字5,你才可以查看隐藏了哪些文件。
这时你肯定会说,一行装不下 PyCharm 为什么不能多行显示呢?
答案是,不是不能,而是需要你设置。
如下图,将单行显示取消勾选即可。
设置完后,有哪些文件就非常清晰了。
25. 应用搜索,阅读源码必备
你平时若有阅读框架源码的需求或习惯,那你一定要来掌握这个技能。
在阅读源码时,代码的入口、流程、走向特别重要。
假设你现在知道了一个特别关键的类,你特别想知道是哪里调用了这个类,你想知道源头,知道整个调用流程。
这个时候你如果使用全局搜索,就会有很多的干扰信息。你急需有一种方法,可以快速给你列出有哪些地方调用了这个类。
贴心的 PyCharm 早已为你准备好了一切。
快捷键:Mac:Command+Option+F7 ,Windows:Ctrl+Alt+F7
如下图所示,按下快捷键后可以很轻松地看见调用列表。
好了,本次的 PyCharm 使用技巧,就是这五个了,你学会了吗?
最后,感谢你的阅读,如果觉得文章对你有所帮助,还望你能帮忙分享、转发、点在看,这就是对我的最大支持。
- 程序员偷偷深爱的 9 个不良编程习惯
- 低级程序员和高级程序员的区别
- Silverlight学习(二)
- Silverlight学习(三)
- ArcGIS for Android学习(一)
- Arcgis for Silverlight学习(一)
- ImageButton与Button
- RadioButton、CheckBox与ToggleButton
- Silverlight学习(五)图形标绘
- radio与checkbox
- JavaScript之cookie
- Silverlight学习(四) domainservice动态多条件查询
- Android学习Tabhost、gallery、listview、imageswitcher
- ProgressBar、RatingBar和Spinner控件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux安装Collabora Online让NextCloud支持Office在线编辑
- 教你在CentOS7安装Vuze(Azureus)
- Pwn-EXP模板
- Linux学习随手记
- PHP session用法其实很简单
- 爬虫代理适合的业务和场景
- Flutter基础widgets教程-OverflowBox篇
- iOS音视频接入- TRTC语音聊天室
- vscode使用COS作为图床编写markdown文档
- 一文爱上可视化神器Plotly_express
- 神策大数据用户行为分析
- 3分钟短文:为了你少跳坑,Laravel写好了用户授权
- 巧用ingest pipeline实现Elasticsearch索引的重定向
- leetcode之错误的集合
- vue-element怎么给select下拉框赋值?