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赋值语句后逗号的作用分析
Jun 08 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Python实现CAN报文转换工具教程
May 05 Python
python实点云分割k-means(sklearn)详解
May 28 Python
Python中的全局变量如何理解
Jun 04 Python
Django restful framework生成API文档过程详解
Nov 12 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
selenium+python实现基本自动化测试的示例代码
Jan 27 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
模仿OSO的论坛(五)
2006/10/09 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
php生成html文件方法总结
2014/12/01 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
广播体操口号
2014/06/18 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书