当前位置: 首页 > 编程日记 > 正文

受用一生的高效PyCharm使用技巧

640?wx_fmt=jpeg

参加 2019 Python开发者日,请扫码咨询 ↑↑↑


作者 | Python编程时光

转载自Python编程时光(ID:Python-Time


今天先从 PyCharm 入手,写一些可以明显改善开发效率的使用技巧,一旦学会,受用一生。以下代码演示是在 Mac 环境下,Windows 也类似,Command 键 相当于 Windows 上的 Control 键。

1. 代码排版,自动PEP8

pep8 是Python 语言的一个代码编写规范。如若你是新手,目前只想快速掌握基础,而不想过多去注重代码的的编写风格(虽然这很重要),那你可以尝试一下这个工具 - autopep8

首先在全局环境中(不要在虚拟环境中安装),安装一下这个工具。

sudo pip install autopep8

然后在 Pycharm 里导入这个工具。

Name: AutoPep8
Description: autopep8 your code
Program: autopep8
Arguments: --in-place --aggressive --aggressive $FilePath$
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

640?wx_fmt=png

我随意写了一段不符合 pep8 规范的代码。

640?wx_fmt=png

点击右键,选择 External Tools -> AutoPep8

640?wx_fmt=png

看一下效果,还是挺明显的。

640?wx_fmt=png

你可能会说,Pycharm 本身就自带这个功能了呀,快捷键 Command+Option+L就可以实现一键pep8了。你可以对比一下,Pycharm 自带的代码 pep8 化功能 并没有像这个autopep8 来得彻底。 我相信你最终的选择肯定是后者。

2. 误删文件,一秒找回

上周,由于自己的误操作,在没有任何备份的情况下,将一个自己写了两个星期的项目给删除了。待我回头神来的时候,我甚至都记不起是何时进行的删除操作。

做为一名老司机,当然是临危不惧地打开了回收站,进行一番搜寻,几个月没有清理过的回收站,真是一片狼藉,什么 jpg,avi 都有,不堪入目呀。

我用一分钟快速浏览了一下,没有发现我要找的那几个 py 文件,我心想,应该是文件太多了,看叉掉了。由于项目是最近写的,文件名我还清楚地记得,既然有文件名,那就利用windows 自带的搜索功能,结果还是没有,这下我才开始意识到事态的严重性,文件可能真的「没了」。

我已经很久没有清理过回收站了,为什么回收站里会没有我的文件呢?

我想这可能是一次非同寻常的 delete,会不会是在 Pycharm 里的 发起删除操作,不会往回收站里丢呢?经过一番测试,在回收站还真的找不着,但是这次尝试也无意中发现了 Pycharm 的隐藏的一个功能 Local History,它会保存你对文件的所有操作记录。

就拿我的刚刚测试的文件来举例,我先是新建了一个文件,然后对在这个文件里添加了几行代码。最后我将这个文件删除了。

此时你可以在你的项目目录里,点击右键,有个 Local History 的选项,再点击子选项 Show History你可以看到这里有个记录板。如果你想恢复删除的文件,就在删除的记录项点击右键,选择 Revert 即可恢复。

640?wx_fmt=png

3. 拥抱Vim,远离鼠标

在大多数场景之下,使用鼠标的效率和精准度,是远不如键盘快捷键的(前提是你已经相当熟练的掌握了快捷键),这个你得承认吧。

Vi 可以满足你对文本操作的所有需求,比可视化界面更加效率,更加 geek。如果你和我一样,是忠实的 vim 粉。在安装完 Pycharm 完后,肯定会第一时间将 ideaVim 这个插件也装上,它可以让我们在 Pycharm 中 使用 vim 来编辑代码。

安装方法如下,安装完后需要重启 Pycharm 生效。

640?wx_fmt=png

4. 代码模板,效率编码

Pycharm 提供的这个代码模板,可以说是相当实用的一个功能了。它可以在你新建一个文件时,按照你预设的模板给你生成一段内容,比如解释器路径,编码方法,作者详细信息等。

640?wx_fmt=png

按照上图模板,生成的效果如下。

640?wx_fmt=png

除了新建文件时可以初始化文件,在开发编写代码时,也同样使用 Pycharm 中自带的实用的代码模板,提高你的编码效率。

当你在键盘中敲入 Command + J 时,就可以调出一个面板,从下图可以看出里面有许多预设的模板。

640?wx_fmt=png

如果我们想选择最后一个 main ,可以继续键入 main,然后就可以直接生成如下这段平时都要手动敲入的代码。

640?wx_fmt=gif

这里再举个例子,for 循环 可以这样写。

640?wx_fmt=gif

5. 使用书签,快速定位

都我在看框架的源代码时,最常使用的是 Command + B (也就是 command + 鼠标左键 )一层一层地往里深入,但是当源代码比较多,可能一整个事件过程涉及十几文件,函数调用错综复杂,对于一个庞大的项目来说,有用的可能就几个关键函数,每次要找到这几个函数,都要重头从源函数再一层一层的找下去,这样实在太麻烦了,我常常因此把自己给看晕了。

直到后来我发现了 Pycharm 这个书签功能。

使用书签功能,我可以在在关键的位置打上书签,想看的时候,调用书签,快速定位即可。

使用它,你需要记住下面下几个快捷键。

Command + F11    打上书签
Shift + F11       展示所有书签

F11 删除书签(经测试仅能在Windows上有效)

在你要打书签的位置,按下 Command + F11 ,你可以给这个位置加个序号,可以是数字也可以是字母,假如在下面这个位置 加了 1 这个序号,下次你就可以使用 Control + 1 直接跳转到这个位置。

640?wx_fmt=png

当然你也可以不加,不加的话就是匿名书签了。你可以使用 Shift + F11 展示所有的书签,再进行跳转。

本周的 PyCharm 高效技巧,就是这五个了,你学会了吗?

(本文为 AI科技大本营转载文章,转载请联系原作者)

征稿

640?wx_fmt=png

推荐阅读:

  • 上海交大CV博导微信群辱骂学生,已停止教学

  • Google BBR拥塞控制算法背后的数学解释 | 深度

  • 苹果春季发布会:库克绝不玩别人玩剩下的!

  • 中国区块链职业发展现状: 30岁前不做开发; 平均薪资仅38.4万; 跳槽薪资涨三成 (附完整报告下载资源)

  • 在线公开课 | 从理论走向实践,多角度详解Cloud Native

  • 库克谈“唱衰苹果”:一派胡言!

  • 13个Python最佳编程技巧,越早知道越好 | 码书

  • 现实!程序员只有跳槽才能涨薪吗?


640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

相关文章:

【Go】Go基础(一):Hello World!

1、 C格式hello.go package main import "fmt"func main(){fmt.Printf("Hello World!\n"); }2、编译 go build hello.go3、运行 执行go build编译后,会在当前目录下生成名为hello的可执行程序。 $ ./hello Hello World!4、Go格式的hello.g…

centos7上搭建http服务器以及设置目录访问

参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改。 步骤: 1. 安装httpd服务 sudo yum install httpd Apache 的所有配置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d 。网站…

一文看懂深度学习发展史和常见26个模型

参加 2019 Python开发者日,请扫码咨询 ↑↑↑来源 | AI部落联盟(ID:AI_Tribe)作者简介:沧笙踏歌,硕士毕业于北京大学,目前计算机科学与技术博士在读,主要研究自然语言处理和对话系统…

JBL无所不能与IPhone4、IPad2的完美盛宴

期待以久JBL白版终于到货了,由于水货的供电参数是110V~200V,行货是110~220V,所以本人选择了行货,因为水货的供电和国内的输入电压不符,时间用久了会影响小J寿命。经过测试后本人发现,用JBL无所不能连接IPho…

【Go】Go基础(二):学习网址汇总

Go语言中文网站 https://studygolang.com/ Go语言标准库文档 https://studygolang.com/pkgdoc 《The Way to Go》中文名《Go 入门指南》 https://github.com/Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md…

堆和栈的主要区别由以下几点:

1、管理方式不同;2、空间大小不同;3、能否产生碎片不同;4、生长方向不同;5、分配方式不同;6、分配效率不同;管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制&a…

参与2011年7月13日举行的Azure国际猜拳锦标赛,赢取5,000美元大奖

你想要编写自己的“bot”角色并测试你的技能,在线同来自美国,加拿大,中国,德国,新西兰,瑞典和英国的Windows Azure开发者一教高下,并赢取5,000美元大奖吗?请先注册Azure国际猜拳锦标…

【Go】Go基础(三):基本结构和基本数据类型

1、Go程序源码结构 我们将一个Go程序的源码暂时称为一个项目 : 每个项目由若干个包组成; 每个包由同一个目录中的若干个go文件组成; 每个go文件中由若干函数、变量、常量等组成; 每个函数由流程控制语句、变量、常量、运算符和函…

2019如何学Python?这里有你需要的答案

点击上方↑↑↑蓝字关注我们~参加 2019 Python开发者日,请扫码咨询 ↑↑↑编辑 | Jane出品 | Python大本营(公众号id:pythonnews)根据 2018 年 Python 开发者大调查,Python 3 的渗透率已经快速增长至 84%,越…

Cisco HSRP热备份路由器协议配置

HSRP热备份路由器协议: HSRP是 Hot Standby Routing Protocol(热备份路由协议)的缩写,它的作用是当核心路由器不能正常工作时, 备用路由器能够实现自动平滑的替换,以保证网络正常使用。该协议中含有多台路由…

FTP与TFTP的区别

文件传输协议(FTP)实际上就是传输文件的协议,它可以应用在任意两台主机之间,但是FTP不仅仅是一个协议,它同时也是一个程序。作为协议,FTP是被应用程序所使用的;而作为程序,用户需要通过手动方式来使用FTP并完成文件的传送。FTP允许执行对目录和文件的访问,并且可以完…

写给NLP研究者的编程指南

点击上方↑↑↑蓝字关注我们~参加 2019 Python开发者日,请扫码咨询 ↑↑↑作者 | 赤乐君,日本某大手研发部门的NLP工程师。关注关系抽取与知识图谱的相关研究。来源 | 赤乐君的知乎专栏最近AllenNLP在EMNLP2018上做了一个主题分享,名为“写给…

【数据库】sqlite3常用命令及SQL语句

【数据库】sqlite3数据库备份、导出方法汇总 一、准备工作 0、安装SQLite3 1)ubuntu命令安装(不是最新版本) sudo apt install sqlite32)源码安装(可以安装最新版本) 下载: https://www.sq…

资本主义社会是不存在人道的

对叙利亚人民感到无助而写点文章,虽然没有什么大的作用,也谈谈自己对于战争与和平的理解,战争与和平就相当于爱与恨一样,爱的热切,恨之入骨,虽然形容不当,人性的双面总是要拿来剖析一二的。 人类…

再谈javascript图片预加载经典技术

图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展示出来,所以lightb…

【Go】Go基础(四):流程控制(控制结构)

1、if-else结构 格式: if condition1 {// do something } else if condition2 {// do something else } else {// default }和C的不同,条件语句没有大括号; 新增的语法: if initialization; condition {// do something }例…

让世界零距离 小鱼易连的大梦想

“他是高材生,也是技术大拿。十年北美,十年中国,他在高科技领域善于创新、精于管理,五项中美专利加身。他在北电网络领导团队不断创新,成就亚太顶尖;他曾任宝利通全球高管,带领团队从初创一路起飞&#xff…

程序员再也不能埋头敲代码了

上周,阿里巴巴重磅发布了机器学习平台 PAI 3.0 版本,据悉,这个 PAL 平台封装了 200 多种经典算法,可以轻松搭建机器学习实验。作为码农一枚,使我不得不抬起原本一直低着敲代码的头,看看这个为 AI 狂欢的世界…

函数的重载 - C++快速入门06

函数的重载 让编程改变世界 Change the world by program 函数的重载 C 里的函数重载(overloading)机制比我们此前见到的东西都高深,这种语言的灵活性和强大功能在它身上体现得淋漓尽致。 所谓函数重载的实质就是用同样的名字再定义一个有…

【Go】Go基础(五):函数

1、简述 Go 里面有三种类型的函数: * 普通的带有名字的函数 * 匿名函数或者lambda函数 * 方法(Methods)两个特殊函数:main()和init(),它们没有参数和返回值; Go语言里面没有函数重载; 2、函数…

搬箱轮滑再炫技!一个被波士顿动力耽误的机器人

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营(ID:rgznai100)据 TheVerge 等多家外媒报道,波士顿动力公司 (Boston Dynamics) 又推出了一款新的机器人&…

我是如何在天猫、蚂蚁金服、百度等大厂面试中被拒的 | 掘金技术征文

本人16年毕业于普通二本院校网络相关专业,工作经验两年半,目前就职业于一家普通民营企业。 由于非985、211学历硬伤,校招进大厂的门槛远高于同届985、211的毕业生。于是乎,从毕业到现在经历了三家创业公司,创业公司的痛…

solaris上的pkg管理

原文写于2010-05-18 19:43:40 网易博客,已删. 在solaris上安装程序,很多时候多离不开package管理.上的编译好的软件都是已package的形式压缩好然后提供给大家下载的. 关键是3个命令:pkgadd/pkginfo/pkgrm pkgadd -d pkgname用来添加安装包 pkginfo 用来打印系统…

【Go】Go基础(六):数组、切片slice、映射map

1、数组 1.1 数组定义 数组:数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列。 数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。数组长度最大为 …

语义表征的无监督对比学习:一个新理论框架

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑译者 | Linstancy责编 | 琥珀出品 | AI科技大本营(ID:rgznai100)诸如图像、文本、视频等复杂数据类型的语义表征 (也称为语义嵌入) 已成为机器学习的核心…

YEX黄建:脱离比特币谈区块链,要么真傻,要么装疯卖傻丨区块链十人谈

如果说2017年是属于虚拟货币的一年,那么2018年的区块链将是生态和应用的一年,随之而来的也将是新的玩法、新的赚钱姿势。为此,雷锋网推出“区块链十人谈”(十人者,取是知众人博所长之意,非实指)…

70佳精美的PSD素材免费下载(上篇)

设计师经常会去网上搜罗各种各样的素材,这些免费素材不仅能帮助他们节省大量的时间,而且能有很好的效果。今天,本文与大家分享70佳精美的PSD素材,非常感谢那些很有才华的设计师分享它们的劳动成果,让更多的人可以使用他…

漫画讲述人工智能简史

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑作者 | 武博士、宋知达、袁雪瑶、聂文韬来源 | 大鱼AI(id:DayuAI-Founder)本文我们会以生动有趣的漫画来介绍关于人工智能(AI)相…

【Go】Go基础(七):包

一、标准库概述 1、官方手册 内置包在 Go 语言中有 150 个以上,它们被称为标准库,完整列表可以在Go Walker中查看 https://gowalker.org/search?qgorepos 2、常用包简介 unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会…

Mysql是时候学习一个存储过程了

create procedure 存储过程名() DECLARE uid INT; #注意声明的变量名不能跟表的字段名一致,否则会报错。如user的主键是id,那么这里声明用来存id值的变量名就不能为id,可以改为uid等 DECLARE done INT DEFAULT 0; #repeat结束标识 DECLARE us…