[toc]

0x00 前言

俗话说:工欲善其事,必先利其器,作为一名开发必需要要一个得心应手的开发工具,比如下面的:

  • VScode : 轻量级的开发工具
  • IntelliJ IDEA Pycharm : Python项目开发必备;
  • IntelliJ IDEA JAVA : Java 开发项目推荐
  • Eclipse JavaEE IDE : Java 开发必备

1.Visual Studio Code 编辑器

在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code。

VS vode特点:

  • 开源,免费;
  • 自定义配置
  • 集成git
  • 智能提示强大
  • 支持各种文件格式(html/jade/css/less/sass/xml)
  • 调试功能强大
  • 各种方便的快捷键
  • 强大的插件扩展

官网 :https://code.visualstudio.com/
github地址 :https://github.com/Microsoft/vscode


1.1 VS 安装插件

如何进入扩展插件下载?
方法一:按F1或Ctrl+Shift+p,输入extensions
方法二:ctrl + P 然后输入 >ext install
方法三:ctrl + shift + X

vscode常用插件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
P0.设置移植
Chinese (Simplified) :中文(简体)语言包
Settings Sync : 使用GitHub Gist同步多台计算机上的设置,代码段,主题,文件图标,启动,键绑定,工作区和扩展。
Visual Studio Keymap : VS使用者迁移到VS-Code



P1.主题美化:
One Dark Pro : Atom标志性的One Dark主题,也是VS Code下载次数最多的主题之一
Atom One Dark Theme : 基于Atom的黑暗主题
Night Owl : 一个非常适合夜猫子的 VS Code 主题。像是为喜欢深夜编码的人精心设计的。



P2.文件图标:
vscode-icons : 目前该插件已被vscode内部支持:"文件" -> "首选项" -> "文件图标主题"



P3.高效管理项目:
Project Manager :定义自己的收藏项目,或选择自动检测VSCode项目,Git,Mercurial和SVN存储库或任何文件夹。


P4.自动格式化代码:
beautify :美化javascript,JSON,CSS,Sass,和HTML在Visual Studio代码
guides : 显示代码对齐辅助线(内置存在)
Rainbow Brackets: 为圆括号,方括号和大括号提供彩虹色。这对于Lisp或Clojure程序员,当然还有JavaScript和其他程序员特别有用。
Bracket Pair Colorizer: 用于着色匹配括号
Indent-Rainbow: 用四种不同颜色交替着色文本前面的缩进


P5.搭建各类语言开发环境:
Code Runner: `Run C, C++, Java, JS, PHP, Python, Perl, Ruby, Go, Lua, Groovy, PowerShell, CMD, BASH, F#, C#, VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml, R, AppleScript, Elixir, VB.NET, Clojure, Haxe, Obj-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Pascal, Haskell, Nim,`



P6.代码调试联调:
Debugger for Chrome : 从VS Code调试在Google Chrome中运行的JavaScript代码。
REST Client:REST客户端允许您直接发送HTTP请求并在Visual Studio Code中查看响应。


P7.自动检测代码规范:
HTML Snippets : 完整的HTML代码提示,包括HTML5
HTML CSS Support:在 html 标签上写class 智能提示css样式
jQuery Code Snippets : 超过130个用于JavaScript代码的jQuery代码片段
HTMLHint:html代码检测,支持html5
Atuo Rename Tag : 修改 html 标签自动帮你完成头部和尾部闭合标签的同步修改
Code Spell Checker:代码拼写检查器,与camelCase代码配合良好的基本拼写检查程序。
Todo Tree:扩展可以快速搜索(使用ripgrep)您的工作区以获取TODO和FIXME等注释标记,并在资源管理器窗格的树视图中显示它们



P8.提升React等前端开发的效率:
npm intellsence : 用于在 import 语句中自动填充 npm 模块
path Intellisence
TypeScript Hero
Import Cost : 对引入的计算大小(node.js)
Path Intellisense : 可自动填充文件名。


P19.信息设置
filesize:在状态栏中显示当前文件大小,点击后还可以看到详细创建、修改时间
GitLens:git日志查看插件增强了 Visual Studio Code 中内置的 Git 功能。


P10.高级功能
Azure Storage:VS Code的Azure存储扩展允许您部署静态网站并浏览Azure Blob容器,文件共享,表和队列


p11.其他常用插件
Paste image : markdown粘贴图片


语言开发环境

C/C++环境

1
2
3
4
5
6
7
8
9
code runner插件默认的c/c++编译器是gcc/g++需要提前安装好并且设置好环境变量,通常选择MinGW或者MinGW-w64,建议选mingw-w64
离线版本x64:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z/download

离线版本x32:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-posix/dwarf/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z/download
#环境变量
setx PATH "%PATH%;D:\Builder\mingw64\bin"

#编译
g++ demo.c -o demo.exe

WeiyiGeek.

WeiyiGeek.

1
2
3
4
5
6
7
8
9
#java
language Support for Java(TM) by Red Hatredhat.java
Java Extension Pack : 流行的扩展,可以帮助在Visual Studio Code中编写,测试和调试Java应用程序
Spring Boot Extension Pack
Language support for Java ™ for Visual Studio Code

#C# : 适用于.NET Core的轻量级开发工具。伟大的C#编辑支持,包括语法突出显示,智能感知,转到定义,查找所有引用等。
CodeMetrics:计算TypeScript / JavaScript文件的复杂性。
VUE插件 :
1.2 VS 常用快捷键
1
2
3
4
5
6
7
Ctrl+,  #界面设置
Ctrl+` #设备终端`
Ctrl+ H #进行字符替换和正则替换
Shift + tab # 删除多行缩进 (常用)
Ctrl+ SHIFT + P #命令面板
Ctrl+Shift+X #打开扩展
Ctrk + K + S # 快捷键设置首页->首选项->键盘快捷方式
1.3 VS 常用设置

问题1:Classpath is incomplete. Only syntax errors will be reported;
产生原因:当打开一个独立的java文件,不属于任何项目VS code的Java扩展将无法计算出正确的类路径,因而报告错误:“Classpath is incomplete. Only syntax errors will be reported.” (但这对独立的java文件而言毫无意义),实际功能不受影响。

1
2
3
4
5
#解决方法
修改用户空间 .settings.json 与
"java.errors.incompleteClasspath.severity": "info"

#2.导入一个真正的项目(包含pom.xml, build.gradle 或者 eclipse的配置文件),以便可以设置完整的classpath和项目结构


问题2:字符转换以及键盘按键设置
操作:键盘快捷方式[ctrl+k ctrl+s] , 输入大小写按键并进行测试;

WeiyiGeek.VSCODE

WeiyiGeek.VSCODE



问题3.设置windows/linux终端

1
2
3
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
"terminal.integrated.shell.linux": "D:\\Program Files\\Git\\git-bash.exe",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"



问题4.设置MD粘贴图片设置

1
2
3
4
"pasteImage.defaultName": "YMMDDHHmmss",
"pasteImage.basePath": "C:\\Users\\Administrator\\Desktop\\fsdownload",
"pasteImage.path": "C:\\Users\\Administrator\\Desktop\\fsdownload",
"pasteImage.insertPattern": "![WeiyiGeek.](https://cdn.jsdelivr.net/gh/WeiyiGeek/blogimage/2019/${imageFilePath}${imageSyntaxSuffix}",



问题5.vscode字体设置
1
2
3
4
5
6
7
8
#控制字体系列。
"editor.fontFamily": "Consolas, 'Courier New', monospace",
#启用字体连字
"editor.fontLigatures": false,
#以像素为单位控制字号。
"editor.fontSize": 14,
#控制字体粗细。
"editor.fontWeight": "normal",



问题6:终端样式修改(即修改User Settings):

1
2
"terminal.external.osxExec": "iTerm.app",(适用于mac/os的iTerm)
"terminal.integrated.fontFamily": "Source Code Pro for PowerLine", #特别是zsh主题的时候


问题7:JAVA编译环境 Build failed, do you want to continue?

1
2
3
4
#清空工作空间
Windows : %APPDATA%\Code\User\workspaceStorage\
MacOS : $HOME/Library/Application Support/Code/User/workspaceStorage/
Linux : $HOME/.config/Code/User/workspaceStorage/


问题8:添加vscode到右键菜单,由于安装时候未进行选择;
描述:下面的vscode是您自己的安装路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\VSCode]
@="Open with Code"
"Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%1\""

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="Open with Code"
"Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%V\""

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="Open with Code"
"Icon"="D:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@="\"D:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%V\""


问题8.vscode中检测代码中的空白行并去除的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#按下ctrl+h键进行正则匹配:
^\s*(?=\r?$)\n
^\d[^.]|(?=\r$) #删除wiz笔记的代码行号(重要)

#保留替换简单正则匹配和替换,并留取关键字(采用了元组的形式)
比如:替换class="abc" 为 class="$style['abc']"
查找正则:class="(.*?)"
替换:class="$style['$1']"

#在比如匹配开头为字母的行在前面加入/
查找正则:(^[a-z])
替换:/$1
# /wp-config.swp
# /wp-config.txt


2.Pycharm 编辑器

pyCharm是一款很好用的编写Python工程的IDE,pycharm 是 Jetbrains 家族中的一个明星产品,

Jetbrains 家族和 Pycharm 版本划分:

  • 第一个版本是「Professional(专业版本)」,这个版本功能更加强大,主要是为 Python 和 web 开发者而准备,是需要付费的。
  • 第二个版本是「社区版」,一个专业版的阉割版,比较轻量级,主要是为 Python 和数据专家而准备的。

Jetbrains开发了许多好用的编辑器:

  • Java 编辑器(IntelliJ IDEA)
  • JavaScript 编辑器(WebStorm)
  • PHP 编辑器(PHPStorm)
  • Ruby 编辑器(RubyMine)
  • C 和 C++ 编辑器(CLion)
  • .Net 编辑器(Rider)
  • iOS/macOS 编辑器(AppCode)等等

官网下载:https://www.jetbrains.com/
激活网站:http://idea.lanyus.com/

2.1 安装与设置

Step1.安装步骤这里就不说了下一步就行,我这里的版本是;

1
2
3
4
5
6
7
PyCharm 2019.1.3 (Professional Edition)
Build #PY-191.7479.30, built on May 29, 2019
Licensed to jetbrains js
Subscription is active until November 27, 2019
JRE: 11.0.2+9-b159.60 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

Step2.激活前清除hosts中屏蔽域名,激活后请将下面添加到hosts文件中;

1
2
0.0.0.0 account.jetbrains.com
0.0.0.0 www.jetbrains.com

WeiyiGeek.IntelliJ IDEA 注册码

WeiyiGeek.IntelliJ IDEA 注册码

Step3.功能更换和设置 Python 解释器,在File->Setting->Projec: xxx下找到 Project Interpreter

WeiyiGeek.Pycharm的python模块设置

WeiyiGeek.Pycharm的python模块设置

Step4.调整字体大小 setting->Editor>General>font,调整控制台的字体及其大小setting->Editor>General>colorScheme>Console font
设置文件编码 setting->Editor>General>file encodings

WeiyiGeek.file encodings

WeiyiGeek.file encodings

Step5.让一个 tab 键代替 4 个空格键


2.2 快捷键

熟悉每个编辑器的快捷键,能大大提高你的工作效率。
常用:

1
setting : Ctrl+alt+s

WeiyiGeek.快捷键1

WeiyiGeek.快捷键1


WeiyiGeek.快捷键2

WeiyiGeek.快捷键2

WeiyiGeek.Pycharm 快捷键图

WeiyiGeek.Pycharm 快捷键图


2.3 问题配置

(1)Pycharm在创建py文件时,如何自动添加默认文件头注释?
用PyCharm创建一个Python文件或者向工程添加一个.py文件时,为了更好的使所编写的代码在各操作环境更好的运行,我们往往需要在.py文件中添加头文件标注相关信息。
打开PyCharm程序,根据菜单栏中按照如下进入设置:File -> settings -> Editor -> File and Code Templates -> Python Script,找到Python Script选项,然后将一下内容添加进文本框即可:

1
2
3
4
5
6
7
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : ${NAME}.py
# @CreateTime : ${DATE} ${TIME}
# @Author : WeiyiGeek
# @Function :
# @Software: ${PRODUCT_NAME}

建立Python file文件将会自动生成文件注释头:
WeiyiGeek.文件注释

WeiyiGeek.文件注释


(2)Pycharm下载设置文件主题
pycharm主题风格。其设置如下:

  • 主题:File -> Settings -> Plugins,搜索:Material Theme UI 并安装。
  • 字体:File -> Settings -> Editor -> Font, Font: Source Code Pro,Size: 16, line-spacing: 1.0,apply,保存。
  • 字体颜色:File -> Settings -> Editor -> Color Scheme Font -> General, scheme选择github,apply,保存。
WeiyiGeek.rainglow

WeiyiGeek.rainglow


(3)pycharm中连接数据库sqlite
菜单中的 view > tool windows 选项 > 下拉下一级菜单选中为 database > 选择具体的数据库

WeiyiGeek.pycharm下载sqlite驱动

WeiyiGeek.pycharm下载sqlite驱动

WeiyiGeek.选择SQLITE数据库并查看

WeiyiGeek.选择SQLITE数据库并查看


3.IDEA 编辑器

描述:ideaUI是一款很好用的编写JAVA工程的IDE,可以说是既Eclipse之后的最好用的IDE没有之一

Jetbrains 家族和 idea 版本划分:

  • 第一个版本是「Ultimate(专业版本)ideaUI」,用于Web和企业开发,需要付费;
  • 第二个版本是「社区版」,一个专业版的阉割版,

Download IntelliJ IDEA: http://www.jetbrains.com/idea/download/#section=windows
idea激活:http://idea.lanyus.com/


3.1 安装与配置

JAVA 开发环境配置
Step1.点击File –>Project Structure (Ctrl+Alt+Shift+S)
Step2.点击左侧标签页SDKs选项,再点击左上角“+”,选择JDK路径

WeiyiGeek.

WeiyiGeek.

Step3.点击确定完成即可


3.2 入坑体验

Intellj IDEA光标为insert状态,无法删除内容
描述:发现打开java文件的光标是win系统下按了insert键后的那种宽的光标,并且还无法删除内容,且按删除(delete)键也只见光标往前移动,但内容却没有被删除,
原因:发现是插件plugins的问题 ideaVIM 插件的作用;

WeiyiGeek.isnert光标问题

WeiyiGeek.isnert光标问题


找不到或无法加载主类 abstractDemo1
答:idea本身缓存问题,解决:清理缓存重启IDEA file-->invalidate Cache/restart 之后再重新build。


3.3 常规配置

1.代码快捷键补全代码的设置
设置路径: File | Settings | Editor | Live Templates
设置流程: 添加Template Group组与LiveTemplate 比如设置 syso

WeiyiGeek.

WeiyiGeek.



2.快捷键的设置
设置路径:File | Settings | Keymap
比如代码补全:ALT+/

WeiyiGeek.

WeiyiGeek.


3.4 插件推荐
  • Easycode是idea的一个插件,可以直接对数据库中的表(指定字段)生成 entity,controller,service,dao,mapper 无需任何编码简单而强大;\
    1
    2
    3
    4
    5
    6
    7
    8
    #启动时在dao层加上@mapper注解,并且在在启动类里面加上@MapperScan("com.vue.demo.dao")注解。 

    #<!--阿里巴巴连接池 SpingBoot pom.xml-->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.9</version>
    </dependency>
WeiyiGeek.

WeiyiGeek.

  • Lombok 是idea的一个插件,通过注解的方式在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。
    Lombok 的使用跟引用 jar 包一样,可以在官网(https://projectlombok.org/download)下载 jar 包,也可以使用 maven 添加依赖:
    1
    2
    3
    4
    5
    6
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
    </dependency>

注意事项:

  • 1.首次使用 Lombok 插件需要做如下几步配置,将 Lombok 插件安装到 IDEA,选中 Plugins,搜索 Lombok,点击 Install;
    • 选择默认的编译方式为 javac,因为 eclipse 是不支持 Lombok 的编译方式的,javac 支持 Lombok 的编译方式。
      • 打开注解生成器 Enable annotation processing
    • PS:IntelliJ IDEA 2019.2需要手动下载对应版本的插件,然后手动引入,在 IDEA 中选择 File -> Setting -> plugins 找到 Install Plugin from Disk…(注意版本不同位置可能有所差异)

4.Eclipse IDE编辑器

描述: 它是是由IBM公司开发的一款JAVA程序开发的软件,提供了开发的便利性,并且可以免费使用它,当前版本Eclipse IDE 2019‑06;

官网下载: https://www.eclipse.org/downloads/

程序的编译和运行的环境配置(一般不改),由于修改编译环境会导致不可置信

  • 低版本JDK编译,高版本JDK运行。可以。
  • 高编译,低运行。不可以。
  • 建议,编译和运行的版本一致。

Eclipse的视窗和视图介绍:

1
2
3
4
5
6
7
8
9
10
视图是由某些视窗的组合而成的
* Java 视图
* Java EE 视图
* Debug 视图

视窗每一个基本的窗体被称为视窗
* PackageExplorer 显示项目结构,包,类,及资源
* Outline 显示类的结构,方便查找,识别,修改
* Console 程序运行的结果在该窗口显示
* Hierarchy 显示Java继承层次结构,选中类后F4

WeiyiGeek.Eclipse界面

WeiyiGeek.Eclipse界面


Eclipse中快捷键的使用

描述:使用快捷键可以帮助我们提高开发效率,提高比格;

  • 0:内容辅助键起提示作用 Alt+/
  • 1:显示类说明和隐藏类说 F2
  • 2:显示类的类型层次结构 F4
  • 3:自动生成构造方法与生成提供外部使用的公共方法
  • A:新建(可以输入关键字选择) ctrl + n
  • B:格式化 ctrl+shift+f
  • C:导入包 ctrl+shift+o
  • D:注释(单行/多行) ctrl+/,ctrl+shift+/,ctrl+shift+\
  • E:代码上下移动 选中代码alt+上/下箭头
  • F:查看源码 选中类名(F3或者Ctrl+鼠标点击)
  • G:查找具体的类 ctrl + shift + t
  • H:查找具体类的具体方法(列表显示) ctrl + o
  • I:给建议根据右边生成左边的数据类型(生成方法) ctrl+1 (实用 将鼠标放在创建的方法名上)
  • J:删除代码 ctrl + d
  • K:抽取方法 alt + shift + m
  • L:改名 alt + shift + r
  • M:隐藏除代码区的所有窗口 ctrl + m
  • O:向上或者向下复制一行 ctrl + alt + [上键|下键]


Eclipse快捷键大全(转载)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码
Ctrl+×(小键盘) 展开当前类中的所有代码
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变为大写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候) - 实用
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)|Try Catch快捷键 - 实用

编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y


查看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-


窗口
作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-


导航
作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至行 Ctrl+L


搜索
作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G


文本编辑
作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下滚行 Ctrl+↓


文件
作用域 功能 快捷键
全局 保存 Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N


项目
作用域 功能 快捷键
全局 全部构建 Ctrl+B


源代码
作用域 功能 快捷键
Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O
Java编辑器 使用try/catch块来包围 未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。


运行
作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行至行 Ctrl+R
全局 执行 Ctrl+U


重构
作用域 功能 快捷键
全局 撤销重构 Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部变量 Alt+Shift+L
全局 内联 Alt+Shift+I
全局 移动 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重做 Alt+Shift+Y


4.1 Eclipse基本配置

1) IDE 编译和运行的环境配置
选择菜单栏:window -- Preferences -- Java

  • 编译环境:Compile 默认选中的就是最高版本。
  • 运行环境:Installed JREs默认会找你安装的那个JDK建议配置了Java的环境变量(也可以指定为您安装其他的JDK安装路径)。
    WeiyiGeek.

    WeiyiGeek.


2) IDE 设置注释
描述:我们可以设置注释也可以进行删除注释,选择你不想要的内容通过右边Edit编辑(请只删除注释部分,不是注释部分的不要删除)。
选择菜单栏:window -- Preferences -- Java -- Code Style -- Code Templates

WeiyiGeek.

WeiyiGeek.


3) IDE 样式窗格设置
A:行号的显示和隐藏

  • 显示:在代码区域的最左边的空白区域,右键 – Show Line Numbers即可。
  • 隐藏:把上面的动作再做一次。

B:字体大小及颜色

  • a:Java代码区域的字体大小和颜色:
    • window – Preferences – General – Appearance – Colors And Fonts –Java修改 – Java Edit Text Font
  • b:控制台
    • window – Preferences – General – Appearance – Colors And Fonts – Debug – Console font
  • c:其他文件
    • window – Preferences – General – Appearance – Colors And Fonts – Basic – Text Font

C:窗体给弄乱了,怎么办?

  • window – Reset Perspective

D:控制台找不到了,怎么办?

  • Window–Show View—Console

E:取消悬浮提示

  • window – Preferences – Java–Editor–Hovers。右边将Combined Hover勾去掉。
  • 这样代码的悬浮框就不会自动出现了。如果想看提示,将光标悬浮在代码上按F2即可。
    WeiyiGeek.

    WeiyiGeek.


4) Eclipse辅助键
描述:在Eclipse的IDE中常常会使用一些快捷大大的提高了我们的开发效率,

  • 比如按键 alt+/ 功能是代码和内容补齐功能,非常的强大还可以自动导包;

定义自己的alt + /快捷输入补齐:windows--perference-Java-Editor-Templates--New

1
2
3
4
5
6
#补充输出语句,选中需要输出的部分,alt+/选择最后一项即可
Alt+/ #代码提示以及自动导包作用

#示例
main+alt+/ #public static void main(String[] args)
syso+alt+/ #System.out.println("")
  • 还比如alt + shit + s + [cor]强大到可以建立空参构造以及有参构造
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #使用方法:
    在菜单栏source里面进行选择或者在代码区鼠标右键选择source里面进行选择;
    Generate Constructors from Superclass
    Generate Constructor using field
    Generate gettter and setters

    alt + shit + s + [cor] #会根据您在类中声明的成员变量来
    - c 生成空参构造
    - o 生成有参构造
    - r 生成get和set方法
    基础示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    class Person {
    private String name;
    private int age;

    //source ->Generate Constructors from Superclass && 快捷键:alt + shift + s + c
    public Person() {
    super();
    }

    //source ->Generate Constructor using field && 快捷键:alt + shift + s + o
    public Person(String name, int age) {
    super();
    this.name = name;
    this.age = age;
    }

    //source ->Generate gettter and setters&& 快捷键:alt + shift + s + r
    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }
    }


5) eclipse编码格式设置
描述:在Window –> Preferences–> General–> Workspace下,面板Text file encoding 选择UTF-8格式

6) Eclipse 注释快捷点

1
2
3
4
5
6
7
1.单行注释
添加注释:Ctrl+/ 或 Ctrl + Shift +c 在单行代码前添加//注释
取消注释:Ctrl+/ 或 Ctrl + Shift +c 在单行代码前取消//注释

2.多行注释
添加注释:Ctrl + Shift + / 为选中代码块添加注释
取消注释:Ctrl + Shift +\ 为选中代码块取消注释


4.2 常用插件使用
Lombok 插件

描述: Lombok 的插件可以帮助我们简化代码(比如set/get方法可以省略不写),取而代之的是在 JavaBean 上标注的注解;

Lombok官方介绍:通过增加一些“处理程序”,可以让 Java 变得简洁、快速。

为啥要使用此插件?
答:在 Java 中要保证封装性,需要将成员变量私有化,对外提供 set/get 方法来访问,虽然现在的 IDE,像 eclipse,IDEA都提供了快捷键,来生成 set/get 方法,但是在做项目的时候,一个 JavaBean 往往会有很多的成员变量,一个变量对应两个方法,如果有10几个成员变量,那么会对应20多个方法,也许还要去写构造器、equals 等方法,而且需要维护。这样一来会使代码变得非常冗余,这些显得很冗长也没有太多技术含量,一旦修改属性就容易出现忘记修改对应方法的失误。

Lombok安装方法
描述:官方下载lombok.jar,双击下载好的lombak.jar安装操作进行依赖安装;

  • 1.点击 Speclify Location 选择 eclipse 的安装目录,然后点击Install / Update ,点击Quit Installer完成安装
  • 2.安装完成之后请确认eclipse安装路径下是否多了一个lombok.jar包,并且其配置文件eclipse.ini中是否添加了如下内容-javaagent:D:\Programs\eclipse\lombok.jar,然后重启Eclipse后将lombok.jar导入项目即可;
  • 3.如过安装成功但是@Data等注解无效,可能是由于你的eclipse版本是新版本,你的lombok.jar版本太旧。那么请下载最新的lombok.jar再进行安装。
    WeiyiGeek.Lombok

    WeiyiGeek.Lombok


Lombok注解使用方法
PS:使用得时候需要进行导包,否则不能使用我得版本是Eclipse 2019/6

  • @Data 注解:为类的所有属性自动生成 setter/getter、equals、canEqual、hashCode、toString 方法,如为 final 属性则不会为该属性生成 setter 方法。

    • 包含了 @ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      import lombok.Data;  

      @Data
      public class Student {
      private String name;
      private Integer age;
      public static void main(String[] args) {
      Student d = new Student();
      d.setName("WeiyiGeek");
      d.setAge(15);
      System.out.println(d.toString());
      }
      }

      //#执行结果
      Student(name=WeiyiGeek, age=15)
  • @Getter/@Setter 注解:指定属性自动生成 set/get 方法它不想@Date那么的粗暴

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    //#示例1.
    import lombok.Setter;
    public class Student {
    @Setter private String name;
    private Integer age;
    private Integer id;
    private String major;

    public static void main(String[] args) {
    Student stu = new Student();
    stu.setName("Mr.ml");
    }
    }

    //#示例2.
    package top.weiyigeek.Lombok;
    import lombok.Getter;
    import lombok.Setter;

    public class Demo2 {
    @Setter @Getter private String Name;
    @Setter private String Address;
    public static void main(String[] args) {
    Demo2 d2 = new Demo2();
    d2.setName("Weiyigeek");
    d2.setAddress("Beijing");
    System.out.println(d2.getName()); //由于Address属性没加@Getter注释所以这里无法调用getAddress方法
    System.out.println(d2.toString()); //由于没有重新toString方法
    }
    }
    //执行结果:
    Weiyigeek
    [email protected]15db9742

[email protected] 注解:用在属性或构造器上,Lombok 会生成一个非空的声明,可用于校验参数能帮助避免空指针。

1
2
3
4
5
6
7

public class Student {
@Setter private String name;
public Student(@NonNull String name) {
this.name = name;
}
}

  • @Cleanup 注解: 能帮助我们自动调用 close() 方法很大的简化了代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    //#示例1
    public class CleanupExample {
    public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[10000];
    while (true) {
    int r = in.read(b);
    if (r == -1) break;
    out.write(b, 0, r);
    }
    }
    }


    //#示例2
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import lombok.Cleanup;
    public class Demo3 {
    public static void main(String[] args) {
    try {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[1024];
    while(true) {
    int r = in.read(b);
    if (r == -1) {
    System.out.println("内容复制完成!");
    break;
    }
    out.write(b, 0, r);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
  • @EqualsAndHashCode 注解:默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成 equals 和 hashCode,也能通过 exclude注解来排除一些属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @EqualsAndHashCode(exclude={"id", "shape"})
    public class EqualsAndHashCodeExample {
    private transient int transientVar = 10;
    private String name;
    private double score;
    private Shape shape = new Square(5, 10);
    private String[] tags;
    private int id;
    public String getName() {
    return this.name;
    }

    @EqualsAndHashCode(callSuper=true)
    public static class Square extends Shape {
    private final int width, height;
    public Square(int width, int height) {
    this.width = width;
    this.height = height;
    }
    }
    }
  • @ToString 注解: 使用@ToString 注解,Lombok 会生成一个 toString() 方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序)用逗号来分割。通过将 includeFieldNames 参数设为 true 就能明确的输出 toString() 属性。这一点是不是有点绕口通过代码来看会更清晰些。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @ToString(exclude="id")
    public class ToStringExample {
    private static final int STATIC_VAR = 10;
    private String name;
    private Shape shape = new Square(5, 10);
    private String[] tags;
    private int id;
    public String getName() {
    return this.getName();
    }

    @ToString(callSuper=true, includeFieldNames=true)
    public static class Square extends Shape {
    private final int width, height;
    public Square(int width, int height) {
    this.width = width;
    this.height = height;
    }
    }
    }
  • @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor : 无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @RequiredArgsConstructor(staticName = "of")
    @AllArgsConstructor(access = AccessLevel.PROTECTED)
    public class ConstructorExample<T> {
    private int x, y;
    @NonNull private T description;
    @NoArgsConstructor
    public static class NoArgsExample {
    @NonNull private String field;
    }
    }