pycharm 使用心得(七)一些实用功能介绍


Posted in Python onJune 06, 2014

实时比较

PyCharm 对一个文件里你做的改动保持实时的跟踪,通过在编辑器的左侧栏显示一个蓝色的标记。

pycharm 使用心得(七)一些实用功能介绍

这一点非常方便,我之前一直是在Eclipse里面用命令“Compare against HEAD” 来比较一个文件前后的改动。

在PyCharm中,你可以对你的改动一览无余。同时,点击那个标记,会显示出之前的内容以及一个工具栏:

pycharm 使用心得(七)一些实用功能介绍

你可以很容易地回滚这些改动,在一个详尽的对话框中查看这些改动或是将之前的文本粘贴到剪切板上。

提交时的比较预览
在Eclipse 中,当你提交改动时,会有一个提交对话框向你展示将要被提交的文件列表。

你可以双击其中任意一项来查看改动的对比:这时候,如果你看到代码里一些想修改的地方(比如一个拼错的单词,一段

遗漏的文档,等等),那可就不爽了:你必须关闭所有的东西(包括带有你精心写好的提交注释的提交框),去找到那处惹人烦的代码,改正,然后从头再来一遍。

PyCharm 有同样的特性,但是你的改动是可编辑的。我简直不能再去强调可以当场修正那些错误有多么棒啦!

pycharm 使用心得(七)一些实用功能介绍

在提交过程中,我可以很容易地修复像上面那些类似的拼写错误。

一个额外好处是,无论你因为何种原因关闭了提交对话框,当再次尝试提交时,它会保留你刚才填写的那些提交注释。

提交时检查
在提交过程中,我们还可以在实际提交前执行其他一些选项,像“优化导入(排序并移除未使用过的导入)“,检查变动集合中的待完成项等等。

pycharm 使用心得(七)一些实用功能介绍

一个有意思的地方是”执行代码分析“那一项。。。

代码审查
你可以让PyCharm在一个文件,目录或整个项目里执行“代码审查”操作。它会在无需实际执行程序的情况下,

找出存在问题以及相应的改进办法,比如类型检查,可静态的方法,违反代码规范等等问题。

正如在上一节中解释过的,这也可以在提交时在发生改动的文件中自动完成。这是一个文件一次审查之后的结果

pycharm 使用心得(七)一些实用功能介绍

 对于其中一些审查结果来说,你还可以应用一个修复建议。例如,对于“Function call can be replaced with set literal()”这一建议,我们可以选择相应的选项来修复。

PyCharm 会将这句::

xtensions = set(['.avi', '.mp4', '.mpg', '.mkv'])

自动替换为:

extensions = {'.avi', '.mp4', '.mpg', '.mkv'}

你可以关闭任何你不希望的审查,包括在项目一级。
重构

我一直在试图重命名一个模块,可在菜单项里一直找不到那一项。。。F2也无济于事。

突然我注意到文件子菜单下面的”重构/重命名“一项,就想。。。会是它吗?果然就是!

在你重命名一个模块时,PyCharm会询问你是否需要自动修改所有与之关联的项目。有福了!

还有很多其他的重构项目,但目前为止我还没有机会一一尝试。
关于过时代码的提示以及改进建议

PyCharm可以告诉你代码里面过时的结构块,并且提出一些改进建议。比如,我有像下面一段这样的代码:

with nested(open(filename1), open(filename2)) as (f1, f2):
 <代码块>

PyCharm会明显的标注出nested:

pycharm 使用心得(七)一些实用功能介绍

我用的是Python2.7,事实上你可以使用嵌套上下文管理器,但是,唉,我还得支持python的一些老版本,就保留了nested。

但PyCharm提醒了我,这个事情本身还是很酷的。

任务+特性 分支
如同Eclipse一样(需要Mylin支持),PyCharm也支持基于任务的工作流(包括任务感知的上下文)。

然而PyCharm本身自带了很多直接可用的连接器(GitHub,Mantis,Jira,Bugzilla,等等)。

而且,当你开启一项任务时,它会询问你是否想要创建那个任务的一个特性分支,分支的名字可以配置。

pycharm 使用心得(七)一些实用功能介绍

这就避免了必须手动创建一个新的分支,而这个操作确实挺繁琐的(拿到任务的ID,选择名称,等等)。

这个是加分项。

快速
我观察到PyCharm在执行代码的自动完成时扫瞄代码的速度要远快于Eclipse,而且还不打断你当前的工作。

当你想保存一个文件时,Eclipse会阻止你这么做因为它正在后台执行一个任务,这有多惹人烦。。。

快速查看文档
当你把光标挪到一个函数、方法,类或者别的什么上的时候,你会得到一个选项来浏览”快速文档“。看一眼:

pycharm 使用心得(七)一些实用功能介绍

正如你看到的,它会用一种赏心悦目的格式展示方法的文档说明,还从代码使用说明中提示了参数的类型。。。即使该函数没有对应的文档说明,你还是会得到像下面这样的一个说明:

pycharm 使用心得(七)一些实用功能介绍

很好!

Docutils 支持
PyCharm 还包括了对于doctils的一流支持,这让它很容易从集成开发环境中直接再生成文档。

另一方面,它还包括了一个非常好的富文本(译者注:ReST即reStructuredTexteditor)编辑器(比Eclipse的IMHO好用的多):

pycharm 使用心得(七)一些实用功能介绍

完善的插件系统
跟据我的使用经验,在Eclipse里面安装插件是件挺痛苦的事情:

 很难找到你想要去的地方(提示: 帮助/安装新软件。。。);
你没有一个单一的索引,所以你得去网上去找那些插件源;
系统有时会因为库的依赖问题而崩溃,结果我就没装上那些我想要的插件(工作中还有其他人也同样遇到这个问题,最后不得不放弃);
PyCharm的插件体验则要流畅地多。

首先,它位于一个你认为它有可能会存在的地方:就在”设置”下面的一项:

pycharm 使用心得(七)一些实用功能介绍

你可以很容易地浏览插件:

pycharm 使用心得(七)一些实用功能介绍

我快速安装了一个标记编辑器(和ReST一样),一个临时存放代码片段的插件,可以让我直接从选择的文本中快速地剪贴,并且预览代码,和SublimeText类似,还用一个漂亮的代码外观。

结语
目前为止就这些了。我会向我的朋友尽力展示一切我认为“看这有多酷”的事情。我使用PyCharm的时间很短,如果我发现还有更多有趣的事情值得再写一篇发表的话,我会继续写。

 

Python 相关文章推荐
使用Python开发windows GUI程序入门实例
Oct 23 Python
python单例模式实例分析
Apr 08 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
【python】matplotlib动态显示详解
Apr 11 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
python输入中文的实例方法
Sep 14 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 #Python
pycharm 使用心得(五)断点调试
Jun 06 #Python
pycharm 使用心得(四)显示行号
Jun 05 #Python
pycharm 使用心得(三)Hello world!
Jun 05 #Python
pycharm 使用心得(二)设置字体大小
Jun 05 #Python
pycharm 使用心得(一)安装和首次使用
Jun 05 #Python
Python学习笔记(一)(基础入门之环境搭建)
Jun 05 #Python
You might like
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
javascript实现简易计算器
2017/02/01 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
JS中数据结构之栈
2019/01/01 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
python编写暴力破解FTP密码小工具
2014/11/19 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
校园十佳歌手策划书
2014/01/22 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
青春奉献演讲稿
2014/05/08 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
增值税发票丢失证明
2015/06/19 职场文书
毕业证明书
2015/06/19 职场文书
交通安全主题班会
2015/08/12 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript