文章首发于 微信公众号:Python编程时光

大家好,这是本系列 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

如下图所示,按下快捷键后可以很轻松地看见调用列表。

如果你嫌这快捷键太长了,可以使用 鼠标中键 点击这个类,可以达到同样的效果。


每周分享五个 PyCharm 使用技巧(五)的更多相关文章

  1. 每周分享五个 PyCharm 使用技巧(二)

    这是 「PyCharm 技巧分享」系列的第二篇分享.由于上一篇文章得到了大家的一些赞同,所以今天又来给大家推荐一些我平时自己有用的小技巧,大家择需所取即可. 先声明下,并不保证对所有的人都是有帮助的, ...

  2. 每周分享五个 PyCharm 使用技巧(一)

    PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带 ...

  3. 每周分享五个 PyCharm 使用技巧(六)

    大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从今年3月24号开始一直到今天,将近四个月的时间.包括本篇,一共更新了6篇文章,每篇 5 个小技巧,总计 30 个. 这30个使用技巧,全部 ...

  4. 每周分享五个 PyCharm 使用技巧(四)

    文章首发于 微信公众号:Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌 ...

  5. 每周分享五个 PyCharm 使用技巧(三)

    文章首发于 微信公众号:Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌 ...

  6. PyCharm 教程(五)断点 调试

    PyCharm 教程(五)断点 调试 PyCharm 作为IDE,断点调试是必须有的功能.否则,我们还真不如用纯编辑器写的快. [运行]和[调试]前的设置,详见前面的文章,helloword. 1,设 ...

  7. 你有哪些想要分享的 PyCharm 使用技巧?

    作者:Light Lin链接:https://www.zhihu.com/question/37787004/answer/75269463来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  8. [转帖]Linux Shell常用技巧(五)

    Linux Shell常用技巧(五) https://zhuanlan.zhihu.com/p/73451771 1. 变量:在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可 ...

  9. PyCharm常用技巧集合

    PyCharm常用技巧集合 一.添加或者修改文件模板 File>settings>Editor>File and Code Templates>Python Script 你可 ...

随机推荐

  1. 陈硕 - Linux 多线程服务端编程 - muduo 网络库作者

    http://chenshuo.com/book/ Muduo网络库源码分析(一) EventLoop事件循环(Poller和Channel)http://blog.csdn.net/nk_test/ ...

  2. OpenGl中使用着色器的基本步骤及GLSL渲染简单示例

    OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...

  3. android圆形旋转菜单,而对于移动转换功能支持

    LZ该公司最近接手一个项目,需要写一个圆形旋转菜单,和菜单之间的移动换位支持,我本来以为这样的demo如若互联网是非常.想想你妈妈也帮不了我,空旋转,但它不能改变位置,所以LZ我们只能靠自己摸索. 最 ...

  4. nginx配置http跳转https

    配置相当简单,在配置文件头部加一行,如下: server { listen *:;//监听80端口 https://www.chenruhui.com$request_uri;//需要跳转的网页 } ...

  5. C# Thread 参数

     Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托.   Thread (ThreadStart) 初 ...

  6. MYSQL 定时自动执行EVENT

    MySQL从5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了 ...

  7. Wpf发送接收 win32消息

    #region WPF发送和接收win32消息 public const int WM_GETTEXT = 0x0D; public const int WM_SETTEXT = 0x0C; publ ...

  8. iOS-HTTP浅析

    HTTP原理 什么是URL URL中常见的几种协议 什么是HTTP协议 HTTP是做什么的 为什么要使用HTTP协议 HTPP协议的通信过程介绍 HTTP请求 HTTP响应 HTTP请求的选择 两种发 ...

  9. android 录屏

    录屏,google了一下,记录下来,以免FQ android 4.4 录屏可通过adb:adb shell screenrecord /sdcard/video.mp4 (未测试) android 5 ...

  10. LINQ查询表达式---------join子句

    LINQ查询表达式---------join子句 join 子句接受两个源序列作为输入. 每个序列中的元素都必须是可以与另一个序列中的相应属性进行比较的属性,或者包含一个这样的属性. join子句使用 ...