JetBrains - IDEA 使用技巧

0. 常用快捷键

1. 代码排版,自动 PEP8

2. 找回误删文件

3. 使用 Vim 代替鼠标

4. 代码模板

5. 使用书签,快速定位

6. 调试技巧

7. 指定参数执行脚本

8. 关闭灯泡提示

9. 关闭波浪线提示

10. 展示多个文件窗口 

11. 高级查找时过滤测试文件

 

 

0. 常用快捷键

编辑类

Ctrl + D:向下复制选定的区域或行

Ctrl + X:删除选定行

Ctrl + Alt + O:优化导入(去掉用不到的包导入)

Ctrl + 鼠标:简介/进入代码定义    

Ctrl + /:行注释 、取消注释

Ctrl + [:快速跳到代码开头

Ctrl + ]:快速跳到代码末尾

Shfit + Enter:任意位置换行(快速在当前行下创建一个空行)

Ctrl + Shift + 向上/下箭头:移动选定的代码行/块

Ctrl + W:选中代码,连续按会有其他效果

Ctrl + Q:显示注释文档

Ctrl + Home/End:跳到文件开头/末尾

查找/替换类

Ctrl + F:当前文件查找

Ctrl + R:当前文件替换

Ctrl + Shift + F:全局查找

Ctrl + Shift + R:全局替换 

Ctrl + E:可打开最近访问过的文件

Ctrl + Shift + E:打开最近编辑过的文件

Double Shift:连续按两下 Shitf 键是万能搜索功能,可以搜索文件名、类名、方法名和目录名(搜索目录的技巧是在在关键字前面加斜杠“/”,表示过滤代码中的匹配关键字)

运行/调试代码

Mac:

  • Control + r:直接运行当前代码
  • Control + d:以 Debug(调试)模式运行代码

Windows/Linux:

  • Shift + F10:直接运行当前代码
  • Shift + F9:以 Debug(调试)模式运行代码

展开/收缩代码

当项目写到一定规模的时候,难免方法/函数会很多,这个时候我们可以使用 Command + Shift + -(或 +) 来收缩(或展开)代码,这个主要是为了方便查看。

 

1. 代码排版,自动 PEP8

pep8 是Python 语言的一个代码编写规范。

  • 如若你是新手,目前只想快速掌握基础,而不想过多去注重代码的的编写风格(虽然这很重要)。
  • 还是要严格遵守 pep8 规范的,不然代码传到 github 或者知乎上被人怼就不好了。但是靠肉眼去检查和注意的话太累。

1.1 Pycharm 自带的 pep8 功能

使用以下快捷键,一键 pep8 走起:

Mac:Command + Option + L

Windows:Ctrl + Alt + L

1.2 插件工具:autopep8

你可能会说,Pycharm 本身就自带实现一键 pep8 了。但也可以对比一下,Pycharm 自带的代码 pep8 化功能 并没有像这个 autopep8 来得彻底。

1)首先安装一下这个工具:

pip install autopep8

2)然后在 Pycharm 里导入这个工具,配置信息如下:

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

3)在代码中点击右键,选择 External Tools -> AutoPep8,完成 pep8 效果。

 

2. 找回误删文件

在 Pycharm 里的发起删除操作,很可能不会往回收站里丢。但 Pycharm 有一个功能 Local History,它会保存你对文件的所有操作记录。

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

 

3. 使用 Vim 代替鼠标

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

Vi 可以满足你对文本操作的所有需求,比可视化界面更加效率,更加 geek。在安装完 Pycharm 后,可以将 ideaVim 这个插件也装上,它可以让我们在 Pycharm 中 使用 vim 来编辑代码。

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

 

4. 代码模板

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

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

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

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

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

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

  

5. 使用书签,快速定位

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

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

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

Command + F11   打上书签
Shift + F11     展示所有书签
F11             删除书签(经测试仅能在Windows上有效)

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

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

 

6. 调试技巧

假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内容。正则这种东西,有几个人能够一步到位的呢,通常都需要经过很多次的调试才能按预期匹配。在我们改了一次正则后,运行了下,需要重新向网站抓取请求,才能发现没有匹配上,然后又改了一版,再次运行同样需要发起请求,结果还是发现还是没有匹配上,往往复复,正则不好的同学可能要进行几十次的尝试。

(上面这个例子可能不太贴切,毕竟是有很多种方法实现不用重新发请求,只是列举了一种很笨拙且低效的调试过程,你看看就好了。)

而我们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工作。如果在 Pycharm 中可以像  IPython Shell  和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以在不需要重新运行项目或脚本,只需稍微调整下我们的代码,直接就可以进行正则调试。

答案当然是有。

假如我在调试如下几行简单的代码。在第 3 行处打了个断点。然后点击图示位置 Show Python Prompt 按钮。

就进入了 Python Shell 的界面,这个Shell 环境和我们当前运行的程序环境是打通的,使用的是同一个 namespace,这下你可以轻松地进行调试了。 

上面我们打了个断点,是为了方便说明这个效果。并不是说一定要打断点。如果不打断点,在脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。

现在我们已经可以满足我们的调试的需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。嗯?其实这个有地方可以设置默认打开的。你需要点击图示位置 Edit Configurations 处:

然后在这里打勾选中:

设置上之后,在每次运行脚本后,都会默认为你存储所有变量的值,并为你打开 console 命令行调试界面。

除了上面这种方法,其实还有一种方法可以在调试过程中,执行命令表达式,而这种大家可能比较熟悉了,这边也提一下,就当是汇总一下。但是从功能上来说,是没有上面这种方法来得方便易用的。因为这种方法,必须要求你使用 debug 模式运行项目,并打断点。

使用方法就是,在你打了断点后,在图示位置处,点击右键使用 Evaluate Expression: 

就弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。 

 

7. 指定参数执行脚本 

有时候,在运行/调试脚本的时候,我们需要指定一些参数,这在命令行中,直接指定即可。

假设在命令行中,运行脚本的命令是这样:

python main.py init --local

而 Pycharm 也是可以指定参数的。点击下图位置:

进入设置面板,在 Script parameters 中填入参数即可。 

 

8. 关闭灯泡提示 

先来说下这个灯泡提示是什么,有什么用?

当我们在代码里面有语法错误,或者代码编写不符合 pep8 代码规范时,鼠标选择有问题的代码,就会自动弹出小灯泡。这个灯泡是有颜色之分的,如果是红灯泡,一般都是语法问题,如果不处理会影响代码运行;而如果是黄灯泡,就只是一个提示,提示你代码不规范等,并不会影响程序的运行。

虽然这个灯泡,是出于善意之举,但我认为它确实有点多余(可能是我个人没有使用它的习惯),要是语法错误会有红色波浪线提示。你可能会说灯泡不仅起到提示的作用,它还可以自动纠正代码,我个人感觉并没有人工校正来得效率,来得精准。

基于有时还会像知乎上这个朋友说的这样,会挡住我们的代码,会经常误点,这确实也是一个烦恼。

Pycharm (以 2018 版为例)里是有开关按钮的,将下图中的这个选项(Show intention bulb)取消勾选,就可以关闭这个功能。

 

9. 关闭波浪线提示

下面先给出了一小段代码示例,思考一下,为什么 name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?

Pycharm 本身会实时地对变量名进行检查,如果变量名不是一个已存在的英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐的写法是用下划线来分隔(其他语言可能会习惯使用驼峰式命名法 ,但 Python 是使用下划线),所以在 Pycharm 看来  my_name 是规范的,而 myname 会被当成是一个单词对待,由于它在单词库里并没有它,所以 myname 是不规范的。

每个人的变量命名习惯不一样,如何你在项目里大量使用了 myname 这种风格的变量命名方法,像下面这样(随便找了一段 cloudinit 的代码),是让人挺不舒服的,总有一种代码有 bug 的错觉。

那么如何关闭这个非语法级别的波浪线呢?很简单,它的开关就在你的右下角那个像“人头”一样的按钮,然后选择 Syntax 级别的即可。

同样一段代码,效果如下,干净了很多。 

 

10. 展示多个文件窗口 

当你的公司不愿意为你配置 2 个显示屏时,你依然可以使用 PyCharm 在一个屏幕里查看多个文件。

鼠标放到当前导航处的文件名,然后右键 Split Vertically 或者 Split Horizontally 就可以啦。

 

11. 高级查找时过滤测试文件

以 OpenStack 框架为例,在 OpenStack 里面带有大量(真的很多)的单元测试文件。这给在使用 Find in Path(Ctrl + Shift + F)时带来了不小的困扰,你可以从下图的搜索结果中感受一下,搜索一个函数,test 文件里的结果比 正常文件要多很多。

这些测试文件的搜索结果,对于我们看源代码不仅没有任何帮助的,更重要的是还干扰视线。于是我就研究了一下,从文件名入手,只要在 Filemask 里填写 !test* 可以将这些 test 文件过滤掉。搜索结果一下子清晰很多。 

 

posted @ 2021-08-16 15:42  Juno3550  阅读(728)  评论(0编辑  收藏  举报