装上后这 14 个插件后,PyCharm 真的是无敌的存在
来源 | Python编程时光
作者 | 写代码的明哥
Key Promoter X
如果让我给新手推荐一个 PyCharm 必装插件,那一定是 Key Promoter X 。
它就相当于一个快捷键管理大师,它时刻地在:
教导你,当下你的这个操作,应该使用哪个快捷操作来提高效率?
提醒你,当下你的这个操作,还没有设置快捷键,赶紧设置一个?
有了 Key Promoter X,你很快就能熟练地掌握快捷键,替代鼠标指日可待。
比如我使用鼠标点开 Find in Path,它就会在右下角弹窗提示你该用哪个快捷键。
Vim in PyCharm
在大多数场景之下,使用鼠标的效率和精准度,是远不如键盘快捷键的(前提是你已经相当熟练的掌握了快捷键),这个你得承认吧。
Vi 可以满足你对文本操作的所有需求,比可视化界面更加效率,更加 geek。如果你和我一样,是忠实的 vim 粉。在安装完 Pycharm 完后,肯定会第一时间将 ideaVim 这个插件也装上,它可以让我们在 Pycharm 中 使用 vim 来编辑代码。
安装方法如下,安装完后需要重启 Pycharm 生效。
Markdown in PyCharm
富文本排版文档是一件非常痛苦的事情 ,对于程序员写文档,最佳的推荐是使用 Markdown ,我所有的博客日记都是使用 Markdown 写出来的。
从 Github下载的代码一般也都会带有README.md文件,该文件是一个Markdown格式的文件。
PyCharm是默认没有安装Markdown插件的,所以不能按照Markdown格式显示文本,显示的是原始文本。
因此,如果要在 PyCharm 中阅读 Markdown 文档,可以装一下 Markdown support 这个插件。
安装的方法有两种:
1、第一种,最方便的,就是你打开一个 MD 的文档,PyCharm 就会提示你安装它。
2、从插件商店中搜索安装。
效果如下
Jupyter Notebook in PyCharm
使用 Jupyter 之前 ,先要安装它
$ pip install jupyter
然后按照下图指示新建一个 Notebook ,就可以开始运作了。
这个界面感觉和 Jupyter 的风格不太符
但是使用上是没有什么区别的,记住三个快捷键就好(下面指的是 Mac 上的,Windows 上的有所不同)
Ctrl+Enter:运行该 cell
Option + shift + Enter:调试该 cell
Shift + Enter:插入一个新的 cell
只要你安装了 Jupyter 后,你使用 Python Console 也会自动变成 Jupyter 的模式
Regex Tester in PyCharm
Regex Tester是PyCharm的第三方插件,可以测试正则表达式。
按照下图入口,安装 Regex Tester 插件:
安装完成后,无需重启 PyCharm ,点击 PyCharm 界面左下方的小矩形按钮,就能找到 Regex Tester 选项。
点击进入后,就出现了如下界面。我随手写了个匹配手机号码的正则(不一定准确),匹配到的字符串背景会被高亮。右上方还有一些选项如大小写敏感,多行模式等,可根据需要进行选择。Regex Tester 还提供了Split,Replace功能等。
使用效果如下:
Use Bash in Windows
在 Windows 上的 cmd 命令和 Linux 命令有不少的差异,比如要列出当前目录下的所有文件,Windows 上是用 dir ,而 Linux 上则是用 ls -l 。
对于像我这样熟悉 Linux 的开发者来说,Windows 的 那些 CMD 命令带来的糟糕体验是无法忍受的。
在弹出的 Bash 窗口,你可以敲入你想使用的 Linux 命令,是不是舒服多了。
Auto PEP8 in PyCharm
pep8 是Python 语言的一个代码编写规范。如若你是新手,目前只想快速掌握基础,而不想过多去注重代码的的编写风格(虽然这很重要),那你可以尝试一下这个工具 - autopep8
首先在全局环境中(不要在虚拟环境中安装),安装一下这个工具。
$ sudo pip install autopep8
然后在 PyCharm 导入这个工具,具体设置如下图
Name: AutoPep8Description: autopep8 your codeProgram: autopep8Arguments: --in-place --aggressive --aggressive $FilePath$Working directory: $ProjectFileDir$Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
我随意写了一段不符合 pep8 规范的代码。
点击右键,选择 External Tools -> AutoPep8
看一下效果,还是挺明显的。
你可能会说,Pycharm 本身就自带这个功能,快捷键 Command+Option+L ,就可以实现一键pep8了。你可以对比一下,Pycharm 自带的代码 pep8 化功能 并没有像这个autopep8 来得彻底。我相信你最终的选择肯定是后者。
Test RESTful Web Service
PyCharm 的 Test RESTful Web Service工具提供了RESTful接口测试界面,如下图所示,提供了get、post,put等http方法,其中的Request子界面headers,Parameters,Body等功能,Response子界面用于显示返回值,Response Headers用于显示返回的消息头。
为了演示,我先使用 Flask 写一个 HTTP 接口
from flask import Flask, requestapp = Flask(__name__)@app.route('/hello')
def index():name = request.args.get('name')return '你好,' + nameif __name__ == '__main__':app.run()
并运行它开启服务。
访问地址是:http://127.0.0.1:5000/
通过下图方式打开 Test RESTful Web Service
会出现如下界面,在红框处填写如下信息
然后点击最左边的运行按钮,即可向服务器发送 http 请求。
Execute Selection in Console
当你想写一段简单的测试代码时,或许你会这样子
使用 Python Shell 直接写。缺点是没有自动补全。
在 PyCharm 中新开一个文件。缺点是要新创建一个文件,完了后还要删除。
今天再给大家介绍一种新的方法,可以完全避开上面两种方式的缺点。
那就是 Execute Selection in Console,可以说是 Run in Anywhere.
只要在当前文件中,写好代码,然后光标选择后,右键点击 Execute Selection in Python Console或者 使用快捷键 option + shift + E (windows 上是 alt + shift + E)。
接着 PyCharm 就会弹出一个 Python Console 窗口,然后运行你所选择的代码。
可以发现其中的一个亮点,就是使用这种方法,PyCharm 会自动帮我们处理好缩进(我们选择时,前面有缩进,可是在执行时,会自动去掉前面多余的缩进)
CodeGlance
如果你曾使用过 Sublime Text,切换到其他代码编辑器,或多或少会有些不习惯,因为很少有编辑器会像 Sublime 那样自带一个预览功能的滚动条。
在 PyCharm 中,就没有解决不了的问题,如果有,那么就装个插件。
要想在 PyCharm 中使用这个预览滚动条,只要装上 CodeGlance 这个插件。使用效果如下
Chinese Plugin
经常听到很多初学者抱怨说,PyCharm 怎么是全英文的?学起来好难啊。
在以前,我会跟他们说,学习编程语言,英文是一项非常重要的能力,千万不能惧怕它,逃避它,而要是去学习它,适应它,如果连个 IDE 都适应不了,那就别学编程了。
而现在,JetBrains 官方自己出了汉化插件,名字就叫:chinese,在插件市场里一搜,排名第一便是它,下载量已经 40 万,对比排名第二的民间汉化插件,简直不是量级的。
点击 INSTALL 安装后,会提示你进行重启,才能生效。
重启完成后,展现在我们面前的是一个既熟悉又陌生的界面,所有的菜单栏全部变成了中文。
点进设置一看,可以说基本实现了汉化,只剩下一小撮的英文(难道是因为这些词保留英文会比翻译后更容易理解吗?就像 socket 和套接字一样。),不过个人感觉完全不影响使用了。
Profile in PyCharm
在 Python 中有许多模块可以帮助你分析并找出你的项目中哪里出现了性能问题。
比如,常用的模块有 cProfile,在某些框架中,也内置了中间件帮助你进行性能分析,比如 Django ,WSGI。
做为Python 的第一 IDE, PyCharm 本身就支持了这项功能。而且使用非常方便,小白。
假设现在要分析如下这段代码的性能损耗情况,找出到底哪个函数耗时最多
import timedef fun1():time.sleep(1)def fun2():time.sleep(1)def fun3():time.sleep(2)def fun4():time.sleep(1)def fun5():time.sleep(1)fun4()fun1()
fun2()
fun3()
fun5()
点击 Run -> Profile '程序' ,即可进行性能分析。
运行完毕后,会自动跳出一个性能统计界面。
性能统计界面由Name、Call Count、Time(ms)、Own Time(ms) ,4列组成一个表格,见下图。
表头Name显示被调用的模块或者函数;Call Count显示被调用的次数;Time(ms)显示运行时间和时间百分比,时间单位为毫秒(ms)。
点击表头上的小三角可以升序或降序排列表格。
在Name这一个列中双击某一行可以跳转到对应的代码。
以fun4这一行举例:fun4被调用了一次,运行时间为1000ms,占整个运行时间的16.7%
点击 Call Graph(调用关系图)界面直观展示了各函数直接的调用关系、运行时间和时间百分比,见下图。
右上角的4个按钮表示放大、缩小、真实大小、合适大小;
箭头表示调用关系,由调用者指向被调用者;
矩形的左上角显示模块或者函数的名称,右上角显示被调用的次数;
矩形中间显示运行时间和时间百分比;
矩形的颜色表示运行时间或者时间百分比大小的趋势:红色 > 黄绿色 > 绿色,由图可以看出fun3的矩形为黄绿色,fun1为绿色,所有fun3运行时间比fun1长。
从图中可以看出Test.py直接调用了fun3、fun1、fun2和fun5函数;fun5函数直接调用了fun4函数;fun1、fun2、fun3、fun4和fun5都直接调用了print以及sleep函数;整个测试代码运行的总时间为6006ms,其中fun3的运行时间为1999ms,所占的时间百分比为33.3%,也就是 1999ms / 6006ms = 33.3%。
Json Parse in PyCharm
在开发过程中,经常会把校验一串 JSON 字符串是否合法,在以前我的做法都是打开 https://tool.lu/json/ 这个在线网站,直接美化来校验,只有 JSON 格式都正确无误合法的,才能够美化。
img
直到后来发现在 PyCharm 有一个插件专门来做这个事,那就是 JSON Parser,在插件市场安装后,重启 PyCharm ,就能在右侧边栏中看到它
img
Inspect Code in PyCharm
对于编译型的语言,如 Java,需要将代码编译成机器可识别的语言才可运行,在编译过程中,就可以通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷。这个过程叫做静态代码分析检查。
那对于 Python 这种解释型的语言来说,代码是边运行边翻译的,不需要经过编译这个过程。很多肉眼无法一下子看出的错误,通常都是跑一下(反正跑一下这么方便)才能发现。
由于Python 运行是如此的方便,以至于我们都不太需要关注静态分析工具。
但也不是说,静态分析工具完全没有用武之地,我认为还是有。
如果你的编码能力还没有很成熟,代码中可以有许许多多的隐藏bug,由于 Python 是运行到的时候才解释,导致一次运行只能发现一个错误,要发现100个bug,要运行100次,数字有点夸大,其实就是想说,如果这么多的错误都能通过一次静态检查发现就立马修改,开发调试的效率就可以有所提升。当然啦,并不是说所有的错误静态分析都能提前发现,这点希望你不要误解。
做为 Python 最强 IDE,PyCharm本身内置了这个功能,不需要你安装任何插件。
你只需要像下面这样点击项目文件夹,然后右键,选择 Inspect Code,就可以开启静态检查。
我对开源组件 nova 的静态检查发现,其有不规范的地方有数千处。
更多精彩推荐
倒计时7天!博客之星虚位以待,Macbook等你来拿
赠书 | 手把手教你自己动手打造一个智能恒温器
仅剩一周!!CSDN年终大放血!人人有份的大奖你确定不来?
弃用 Cookie!
前端诸神大战,Vue、React 依旧笑傲江湖
相关文章:

批量实现面向对象的实例
<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>批量实现面向对象的实例</title> <script type"text/javascript"> window.onload function(){function Person(name,age){this.name name;this.…

读Zepto源码之操作DOM
2019独角兽企业重金招聘Python工程师标准>>> 这篇依然是跟 dom 相关的方法,侧重点是操作 dom 的方法。 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 .remove() remove: function()…

VSS的每日自动备份
小弟在项目中兼职担当配置管理员,备份VSS的重任当然也得我来扛着,不然兄弟们加班加点的劳动果实可能因为什么天灾人祸一不小心就挂了。以往备份VSS的频率是一月一次,近来受到上面的教导,备份频率较少,需要每日备份。难…
当 AI 闯入法律界,第一步是当律师的得力助手
来源 | HyperAI超神经责编 | 晋兆雨头图 | CSDN 下载自视觉中国长久以来,律师这一职业给大众的印象都是精英、雄辩、高薪,而这份工作背后的艰辛却很少被看到。除了出庭之外,律师们要花费大量时间与经历进行法律资料研究、合同文件审查等。为此…

Ubuntu下添加新分区并设置挂载点
Ubuntu下添加新分区并设置挂载点最近在做Android项目,可是解压根文件系统以后,就报警说硬盘不够。当初设置使用的大小为15G。不过扩展分区还是很方便的。当然首先你得设置添加使用的硬盘大小,这次我一下提高到了30G,看它还报警否。…

2016 只剩最后一个月 你的 技术债务 还清了吗?
一夜醒来,猛然发现,2016 已经只剩最后一个月了! 回忆过去的 330 多个日与夜,哪些互联网圈的大事让你瞠目结舌? 也许是 AlphaGo 在堪称人脑游戏巅峰的围棋领域屡战告捷; 也许是 Pokmon Go 称霸大洋彼岸&…
给图片加上带版权的水印
我们在网站上有些时候需要给图片加上带版权的水印,.net的Graphics类可以很轻松的实现这一点。效果图:(图片最上端的那行字便是我们加上的版权水印了)实现代码: /**//// <summary> /// 生成带版权水印的图片 …
重磅推出开发者计划、App Store,赛灵思普及自适应计算的一大步
得开发者得天下。尤其随着AI技术落地趋势加剧,其中大部分创新来自软件应用,市场对软件开发者有着极大需求。因此,无论是互联网公司还是传统的IT厂商都在尝试将开发者沉淀到自己的平台。 作为FPGA的开创者,赛灵思正在突破主要支持硬…

Web 开发人员必备的随机 JSON 数据生成工具
在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确。JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊。 您可能感兴趣的相关文章Verlet-js:超炫的开源 JavaScript 物…

bootstrap解析-栅格系统
.container(布局容器) 屏幕宽1200px以上(col-lg) 1. 默认width为1170px 2. padding,lefet和right各为15px,所以内容width为1140px;屏幕宽992px以上(col-md) 1. 默认width为970px 2. padding,lefet和right各为15px,所以内容width为940px;屏幕宽768px以上(…

asp.net中窗口相关操作总结(javascript)
1.打开新窗口 这个简单:Response.Write("<script language javascript>window.open(url);</script>"); 2.关闭窗口 //关闭当前窗口,并提示用户时候关闭,yes关闭,no退出 Response.Write("<script language javascript>window.close();</sc…

200万注册开发者,13亿张全景图片,90%数据生产环节AI化,百度地图生态全景升级2.0
12月29日, 2020百度地图生态大会在京举办。据介绍,在AI技术加持下,百度地图实现了90%数据生产环节AI化,全新升级生态全景2.0。 百度集团副总裁、百度集团首席信息官(CIO)李莹出席大会并致辞,她表示:“在20…

Sqlite3数据库之第三方库FMDB学习心得
很早之前就接触Sqlite数据库,但是之前对数据库操作未使用任何第三方库,只是实现基本的增、删、改、查功能,自己对着一本iPhone开发入门级的书籍写了一个类,基本能实现上述四个功能。最近在开发一个软件,由于是一个本地应用,经过再三思量,最好…

您会让自己的小孩将来从事软件研发吗?
您会让自己的小孩将来从事软件研发吗?非常多程序猿,都已经30多岁了。过了而立之年,有了自己的老婆,自己温馨的小家庭,自己可爱的小孩。小孩也都是00后的。“您会让自己的孩子从事软件研发吗?”本来小孩的事…
CSDN湘苗培优|成长,从走出舒适区开始
湘苗培优CSDN高校俱乐部报名火热进行中!基础训练交付训练实践练习湘苗培优 随着我国信息产业飞速发展,通过常规灌输式培养出来的学员已经不能够满足企业要求。企业更缺乏的是具备自主学习能力、具备综合解决问题能力的高素质技术人才。高素质技术人才需要…
使用VS自带的混淆器防止你的程序被反编译
这里就介绍大家使用VS自带的混淆器dotfuscator.exe来阻止这种行为。首先要做的找到dotfuscator.exe: D:/Microsoft Visual Studio .NET 2003/PreEmptive Solutions/Dotfuscator Community Edition运行dotfuscator.exe首先是是否注册的界面,先不注册吧&am…

【124】排球基本技术
排球基本技术 1.基本技术的概念 是指在规则允许的条件下,运用人体解剖和运动生物力学的原理,所采用的合理击球和完成击球动作的其他配合的总称。 2.排球技术的特点 (1)完成动作时间短促; (2)完成…

FairyGUI和NGUI对比
一直在做Unity方面的游戏开发,经同事介绍了解到有这么一个GUI能提供跨平台的能力,有独立UI编辑器,而且功能强大,能够组合成复杂的UI界面,可以导出到Unity,Flash,Starling等,文档还说未来将支持UE4ÿ…

用like语句时的C#格式化函数
*********************************************************************************** * 版权声明 * 此文章为ocean所有,版权归ocean所有,任何网站 *和 媒体转载必须包含此段声明,否则将…

JS-arguments分析
JS-arguments分析waiting……转载于:https://blog.51cto.com/frabbit2013/1242112
200万注册开发者,13亿全景图片,90%数据生产AI化,百度地图如何造生态?
12月29日, 2020百度地图生态大会在京举办。据悉,在AI技术加持下,百度地图实现了90%数据生产环节AI化,并全新升级生态全景2.0。围绕百度地图2020年的各项进展,百度地图总经理季永志做出了全方面回顾,并展示了…

内核中的内存申请:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages【转】
转自:http://www.cnblogs.com/yfz0/p/5829443.html 在内核模块中申请分配内存需要使用内核中的专用API:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages;当然,设备驱动程序也不例外;对于提供了MMU功能的处理器而言,Linux提供了复杂的内存管理系统,使得进程所能…

以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格
最近因为需要学习了一下使用C#操作Excel表格,现在把我使用C#如何定制表格的过程提供给需要的兄弟: /*从数据库提取数据*/ string strconn"packet size4096;user idsa;data sourcelocalhost;persist security infoTrue;initial catalogDatabase;pa…

7_7_2013 E.Function
2019独角兽企业重金招聘Python工程师标准>>> Problem E: Function Time Limit: 1 Sec Memory Limit: 32 MB Submit: 52 Solved: 26 [ Submit][ Status][ Web Board] Description Define a function f(n)(f(n-1)1)/f(n-2). You already got f(1) and f(2). Now…

快手日入数据量超 5120TB,数据管治如何做?
近日,快手大数据团队联合“快手中学”,举办“快手数据管治技术交流会”,各行业数据相关开发者报名参与。在海量的 UGC 数据、业务数据、用户数据背后,支撑快手数据业务的快手大数据平台,秉承“以领先的大数据技术&am…

LINUX创建www的用户组和用户,并且不允许登录权限:
# id www id: www:无此用户 # groupadd www # useradd -g www -s /sbin/nologin www # id www uid501(www) gid501(www) 组501(www) 转载于:https://www.cnblogs.com/cnbing/p/6957239.html

GridView自定义分页导航
自己做的一个项目中所运用到的技术:| 1. 日历控件(带时分秒)2. GridView 批量删除,自定义分页,定位页码3. GridView 修改4. GridView 鼠标经过改变行的颜色效果如下:HTML:<% Page L…

一文看懂AI数据采集标注未来三年的发展和趋势
影响人工智能发展的三大要素分别是数据、算法、算力,限于篇幅,本篇内容将重点分析未来几年内人工智能所需要的数据趋势及探讨数据服务商发展方向。 作为AI数据采集标注的领先企业,云测数据分析认为人工智能在经历了算法研究、技术扩张和商业落…

HTTP 状态代码及其定义
相关文章:http://ruby-china.org/topics/12384 所有 HTTP 状态代码及其定义。 代码 指示 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。 203 正常࿱…

html5地理定位数据
2019独角兽企业重金招聘Python工程师标准>>> <html><head><meta charset"UTF-8"/> <meta name"viewport" content"widthdevice-width, initial-scale1.0"><script type"text/javascript">fu…