前面寫過一篇IDEA的入門級(jí)文章,但是只學(xué)會(huì)了那些配置啊什么的并不能提高我們的開發(fā)效率媚媒。事實(shí)上嗜逻,如果你IDEA用的足夠熟練叼丑,就可以把鼠標(biāo)扔了券册。
附入門級(jí)教程傳送門:
http://www.reibang.com/p/0e2bf6a1efda
本文首發(fā)自我的csdn(以后的文章都會(huì)在簡書首發(fā))
實(shí)時(shí)代碼模板(Live Templates)
我們先來看一個(gè)gif圖:
大兄弟撞鹉,你看清我的操作了么鸵鸥?
這個(gè)就是實(shí)時(shí)代碼模板的功能。我們來看一下怎么用它萄凤。
看了這個(gè)圖室抽,你大概已經(jīng)知道怎么建立一個(gè)新的模板了。下面將一下模板的變量蛙卤。
第一個(gè)gif圖里用到了兩個(gè)模板狠半,一個(gè)是系統(tǒng)定義的psvm(private static void main的縮寫),使用它我們可以快速創(chuàng)建main函數(shù)颤难。另一個(gè)是我們自定義的syso(來自eclipse用戶的強(qiáng)迫癥)
//syso的模板文本
System.out.println("$val$的值是:---"+ $val$ + "神年,當(dāng)前方法=$CLASS_NAME$.$METHOD_NAME$()");$END$
- $VAR1$、$CLASS_NAME$行嗤、$METHOD_NAME$ 都為自己定義的變量名已日。設(shè)置變量名只要用兩個(gè) $ 包住即可。
- 每個(gè)變量在代碼輸出的時(shí)候都是一次光標(biāo)位置栅屏,光標(biāo)跳動(dòng)順序從左到右飘千,每次跳動(dòng)按 Enter。
- $END$栈雳,表示最后都編輯完后光標(biāo)所處的位置
- $SELECTION$护奈,表示設(shè)置環(huán)繞實(shí)時(shí)代碼模板,環(huán)繞功能下面會(huì)模板專門進(jìn)行介紹哥纫。
- 除了兩個(gè)特例霉旗,其他被$包裹的都是自定義變量
下面看一下,如何對(duì)變量進(jìn)行設(shè)置:
看了這個(gè)圖蛀骇,你大概就應(yīng)該清楚了厌秒。內(nèi)置函數(shù)直接看一下官網(wǎng)介紹吧,都能看懂的擅憔。
內(nèi)置函數(shù)介紹:https://www.jetbrains.com/idea/help/live-template-variables.html
順便提一句鸵闪,在左下角還有三個(gè)選項(xiàng),是幾個(gè)輔助功能暑诸。
- Reformat according to style: 對(duì)生成的代碼進(jìn)行格式化(建議勾選)蚌讼。
- use static import if possible :靜態(tài)導(dǎo)入
- Shorten FQ names :我也不知道這個(gè)是干嘛的,默認(rèn)就勾選了个榕,所以最好選中
這個(gè)是一個(gè)很強(qiáng)大的功能啦逆,大家沒事可以多看看系統(tǒng)內(nèi)置的模板,把自己經(jīng)常寫的代碼保存成模板笛洛,有利于提高效率。比如:
5秒一個(gè)單例模式
文件代碼模板
這個(gè)我想大家都知道吧乃坤,你每次新建一個(gè)文件的時(shí)候苛让,總會(huì)有一些已經(jīng)存在的代碼或者文字沟蔑,這個(gè)就是文件代碼模板。
DEA 默認(rèn)新建類自帶的類注釋格式一般不夠友好或是規(guī)范狱杰,所以我們一般需要自己根據(jù)喜好或者一些要求設(shè)置瘦材。
velocity是一種模板,在寫javaEE項(xiàng)目的時(shí)候仿畸,有三種模板可以使用:jsp食棕,freemarker和velocity
上面的java模板有一句
#parse("File Header.java")
,這個(gè)File Header就是在這里定義的错沽。每次創(chuàng)建一個(gè)新的java文件簿晓,都會(huì)有一個(gè)這樣的頭
我們先來看一個(gè)例子:
看起來屌屌的。怎么做的呢千埃?
大概就是這樣了憔儿。
有的人會(huì)說,為什么不在File Header文件中修改呢放可?因?yàn)橛泻芏嗄0逡昧四莻€(gè)文件谒臼,如果你修改了它,那么所有引用它的模板都會(huì)改變耀里。如果你只想改變java蜈缤,那只修改class文件就可以了。
由于可以使用velocity的語法冯挎,所以模板可以有很多高端寫法底哥。
比如可以使用
#set( $變量名 = "變量值內(nèi)容" )
來設(shè)置一個(gè)全局變量,這樣在文件的任何位置都能夠訪問到它织堂,就不需要自己寫好幾遍了叠艳。
更多的模板設(shè)置方式,感興趣的請(qǐng)自行研究velocity易阳。
說了半天附较,我們講的都是文件模板,還有代碼模板沒說潦俺。因?yàn)榫芸危@個(gè)改動(dòng)的不多,系統(tǒng)默認(rèn)的差不多就夠用了事示。
在我們通過快捷方式生成某個(gè)類的測試方法時(shí)候會(huì)自動(dòng)調(diào)用此 Code 模板早像,所以我們可以解釋該 Code 功能主要用在 IntelliJ IDEA 自動(dòng)幫我們生成某些代碼的時(shí)候引用的模板。
p.s.代碼模板是不能夠添加也不能刪除的肖爵。
Postfix Completion
先看一個(gè)例子:
哪怕快一秒卢鹦,也是提高了效率不是么?
這個(gè)功能怎么使用呢劝堪?
沒事就打開看看
ALT + Enter介紹
這是一個(gè)非常厲害的組合冀自!
厲害到什么程度呢揉稚?厲害到我都講不完的程度。熬粗。所以我丟個(gè)鏈接搀玖,然后就跑:
https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/newMaster/hotkey-alt-enter-introduce.md
極客學(xué)院的教程,圖文并茂驻呐。
Emmet插件
這個(gè)插件寫前端的應(yīng)該都不陌生吧灌诅,前端神器。IDEA內(nèi)置了這個(gè)插件含末。我們來看一下:
這個(gè)插件強(qiáng)大的很猜拾,我覺得是每個(gè)前端必會(huì)的技能,不會(huì)的趕緊去學(xué)習(xí)一波啊
Java 熱部署插件 JRebel 安裝及使用
在 Java Web 開發(fā)中答渔, 一般更新了 Java 文件后要手動(dòng)重啟 Tomcat 服務(wù)器关带, 才能生效, 浪費(fèi)不少生命啊沼撕, 自從有了 JRebel 這神器的出現(xiàn)宋雏, 不論是更新 class 類還是更新 Spring 配置文件都能做到立馬生效,大大提高開發(fā)效率务豺。
JRebel 的安裝方法有兩種磨总, 一種是直接在 Tomcat 啟動(dòng)參數(shù)上面加上 JRebel 的參數(shù), 另外一種是以插件的形式裝到 IntelliJ IDEA 上笼沥, 比較推薦后者蚪燕。所以,只講第二種方式奔浅。
先裝個(gè)插件壓壓驚
這個(gè)速度是有點(diǎn)慢的馆纳。⌒阼耄可以到官網(wǎng)上把插件下載下來鲁驶,然后從本地安裝:https://zeroturnaround.com/software/jrebel/trial/ (事實(shí)上,官網(wǎng)也挺慢的)
這個(gè)是需要激活的舞骆,但是現(xiàn)在你在官網(wǎng)上注冊之后钥弯,會(huì)自動(dòng)跳出一個(gè)激活碼,也就是說督禽,現(xiàn)在你可以免費(fèi)使用脆霎,不過你需要注冊一下。網(wǎng)址在上面(安裝好在idea里也能注冊狈惫,但是給不給激活碼我就不知道了)睛蛛。
安裝好了之后,查看一下你的插件:
在原來運(yùn)行項(xiàng)目的按鈕邊上會(huì)多出兩個(gè)綠色的按鈕, 如圖玖院, 前面那個(gè)是 Run菠红, 后面那個(gè)是 Debug:
配置tomcat
然后用jRebel啟動(dòng)項(xiàng)目(run 或者 debug都可以)
如果沒有報(bào)錯(cuò),并且打印出了版本等信息难菌,這樣就證明弄好了。你可以修改一個(gè)文件試一下效果蔑滓。
IntelliJ IDEA 常用快捷鍵講解(Mac)
Mac鍵盤符號(hào)和修飾鍵說明
-
?
Command -
?
Shift -
?
Option -
?
Control -
??
Return/Enter -
?
Delete -
?
向前刪除鍵(Fn+Delete) -
↑
上箭頭 -
↓
下箭頭 -
←
左箭頭 -
→
右箭頭 -
?
Page Up(Fn+↑) -
?
Page Down(Fn+↓) -
Home
Fn + ← -
End
Fn + → -
?
右制表符(Tab鍵) -
?
左制表符(Shift+Tab) -
?
Escape (Esc)
一郊酒、Editing(編輯)
-
Control + Space
基本的代碼補(bǔ)全(補(bǔ)全任何類、方法键袱、變量) -
Control + Shift + Space
智能代碼補(bǔ)全(過濾器方法列表和變量的預(yù)期類型) -
Command + Shift + Enter
自動(dòng)結(jié)束代碼燎窘,行末自動(dòng)添加分號(hào) -
Command + P
顯示方法的參數(shù)信息 -
Control + J
快速查看文檔 -
Shift + F1
查看外部文檔(在某些代碼上會(huì)觸發(fā)打開瀏覽器顯示相關(guān)文檔) -
Command + 鼠標(biāo)放在代碼上
顯示代碼簡要信息 -
Command + F1
在錯(cuò)誤或警告處顯示具體描述信息 -
Command + N, Control + Enter, Control + N
生成代碼(getter、setter蹄咖、構(gòu)造函數(shù)褐健、hashCode/equals,toString) -
Control + O
覆蓋方法(重寫父類方法) -
Control + I
實(shí)現(xiàn)方法(實(shí)現(xiàn)接口中的方法) -
Command + Option + T
包圍代碼(使用if..else, try..catch, for, synchronized等包圍選中的代碼) -
Command + /
注釋/取消注釋與行注釋 -
Command + Option + /
注釋/取消注釋與塊注釋 -
Option + 方向鍵上
連續(xù)選中代碼塊 -
Option + 方向鍵下
減少當(dāng)前選中的代碼塊 -
Control + Shift + Q
顯示上下文信息 -
Option + Enter
顯示意向動(dòng)作和快速修復(fù)代碼 -
Command + Option + L
格式化代碼 -
Control + Option + O
優(yōu)化import -
Control + Option + I
自動(dòng)縮進(jìn)線 -
Tab / Shift + Tab
縮進(jìn)代碼 / 反縮進(jìn)代碼 -
Command + X
剪切當(dāng)前行或選定的塊到剪貼板 -
Command + C
復(fù)制當(dāng)前行或選定的塊到剪貼板 -
Command + V
從剪貼板粘貼 -
Command + Shift + V
從最近的緩沖區(qū)粘貼 -
Command + D
復(fù)制當(dāng)前行或選定的塊 -
Command + Delete
刪除當(dāng)前行或選定的塊的行 -
Control + Shift + J
智能的將代碼拼接成一行 -
Command + Enter
智能的拆分拼接的行 -
Shift + Enter
開始新的一行 -
Command + Shift + U
大小寫切換 -
Command + Shift + ] / Command + Shift + [
選擇直到代碼塊結(jié)束/開始 -
Option + Fn + Delete
刪除到單詞的末尾 -
Option + Delete
刪除到單詞的開頭 -
Command + 加號(hào) / Command + 減號(hào)
展開 / 折疊代碼塊 -
Command + Shift + 加號(hào)
展開所以代碼塊 -
Command + Shift + 減號(hào)
折疊所有代碼塊 -
Command + W
關(guān)閉活動(dòng)的編輯器選項(xiàng)卡
二、Search/Replace(查詢/替換)
-
Double Shift
查詢?nèi)魏螙|西 -
Command + F
文件內(nèi)查找 -
Command + G
查找模式下澜汤,向下查找 -
Command + Shift + G
查找模式下蚜迅,向上查找 -
Command + R
文件內(nèi)替換 -
Command + Shift + F
全局查找(根據(jù)路徑) -
Command + Shift + R
全局替換(根據(jù)路徑) -
Command + Shift + S
查詢結(jié)構(gòu)(Ultimate Edition 版專用,需要在Keymap中設(shè)置) -
Command + Shift + M
替換結(jié)構(gòu)(Ultimate Edition 版專用俊抵,需要在Keymap中設(shè)置)
三谁不、Usage Search(使用查詢)
-
Option + F7 / Command + F7
在文件中查找用法 / 在類中查找用法 -
Command + Shift + F7
在文件中突出顯示的用法 -
Command + Option + F7
顯示用法
四、Compile and Run(編譯和運(yùn)行)
-
Command + F9
編譯Project -
Command + Shift + F9
編譯選擇的文件徽诲、包或模塊 -
Control + Option + R
彈出 Run 的可選擇菜單 -
Control + Option + D
彈出 Debug 的可選擇菜單 -
Control + R
運(yùn)行 -
Control + D
調(diào)試 -
Control + Shift + R, Control + Shift + D
從編輯器運(yùn)行上下文環(huán)境配置
五刹帕、Debugging(調(diào)試)
-
F8
進(jìn)入下一步,如果當(dāng)前行斷點(diǎn)是一個(gè)方法谎替,則不進(jìn)入當(dāng)前方法體內(nèi) -
F7
進(jìn)入下一步偷溺,如果當(dāng)前行斷點(diǎn)是一個(gè)方法,則進(jìn)入當(dāng)前方法體內(nèi)钱贯,如果該方法體還有方法挫掏,則不會(huì)進(jìn)入該內(nèi)嵌的方法中 -
Shift + F7
智能步入,斷點(diǎn)所在行上有多個(gè)方法調(diào)用喷舀,會(huì)彈出進(jìn)入哪個(gè)方法 -
Shift + F8
跳出 -
Option + F9
運(yùn)行到光標(biāo)處砍濒,如果光標(biāo)前有其他斷點(diǎn)會(huì)進(jìn)入到該斷點(diǎn) -
Option + F8
計(jì)算表達(dá)式(可以更改變量值使其生效) -
Command + Option + R
恢復(fù)程序運(yùn)行,如果該斷點(diǎn)下面代碼還有斷點(diǎn)則停在下一個(gè)斷點(diǎn)上 -
Command + F8
切換斷點(diǎn)(若光標(biāo)當(dāng)前行有斷點(diǎn)則取消斷點(diǎn)硫麻,沒有則加上斷點(diǎn)) -
Command + Shift + F8
查看斷點(diǎn)信息
六爸邢、Navigation(導(dǎo)航)
-
Command + O
查找類文件 -
Command + Shift + O
查找所有類型文件拿愧、打開文件杠河、打開目錄,打開目錄需要在輸入的內(nèi)容前面或后面加一個(gè)反斜杠/
-
Command + Option + O
前往指定的變量 / 方法 -
Control + 方向鍵左 / Control + 方向鍵右
左右切換打開的編輯tab頁 -
F12
返回到前一個(gè)工具窗口 -
Esc
從工具窗口進(jìn)入代碼文件窗口 -
Shift + Esc
隱藏當(dāng)前或最后一個(gè)活動(dòng)的窗口,且光標(biāo)進(jìn)入代碼文件窗口 -
Command + Shift + F4
關(guān)閉活動(dòng)run/messages/find/... tab -
Command + L
在當(dāng)前文件跳轉(zhuǎn)到某一行的指定處 -
Command + E
顯示最近打開的文件記錄列表 -
Option + 方向鍵左 / Option + 方向鍵右
光標(biāo)跳轉(zhuǎn)到當(dāng)前單詞 / 中文句的左 / 右側(cè)開頭位置 -
Command + Option + 方向鍵左 / Command + Option + 方向鍵右
退回 / 前進(jìn)到上一個(gè)操作的地方 -
Command + Shift + Delete
跳轉(zhuǎn)到最后一個(gè)編輯的地方 -
Option + F1
顯示當(dāng)前文件選擇目標(biāo)彈出層券敌,彈出層中有很多目標(biāo)可以進(jìn)行選擇(如在代碼編輯窗口可以選擇顯示該文件的Finder) -
Command + B / Command + 鼠標(biāo)點(diǎn)擊
進(jìn)入光標(biāo)所在的方法/變量的接口或是定義處 -
Command + Option + B
跳轉(zhuǎn)到實(shí)現(xiàn)處唾戚,在某個(gè)調(diào)用的方法名上使用會(huì)跳到具體的實(shí)現(xiàn)處,可以跳過接口 -
Option + Space, Command + Y
快速打開光標(biāo)所在方法待诅、類的定義 -
Control + Shift + B
跳轉(zhuǎn)到類型聲明處 -
Command + U
前往當(dāng)前光標(biāo)所在方法的父類的方法 / 接口定義 -
Control + 方向鍵下 / Control + 方向鍵上
當(dāng)前光標(biāo)跳轉(zhuǎn)到當(dāng)前文件的前一個(gè)/后一個(gè)方法名位置 -
Command + ] / Command + [
移動(dòng)光標(biāo)到當(dāng)前所在代碼的花括號(hào)開始/結(jié)束位置 -
Command + F12
彈出當(dāng)前文件結(jié)構(gòu)層叹坦,可以在彈出的層上直接輸入進(jìn)行篩選(可用于搜索類中的方法) -
Control + H
顯示當(dāng)前類的層次結(jié)構(gòu) -
Command + Shift + H
顯示方法層次結(jié)構(gòu) -
Control + Option + H
顯示調(diào)用層次結(jié)構(gòu) -
F2 / Shift + F2
跳轉(zhuǎn)到下一個(gè)/上一個(gè)突出錯(cuò)誤或警告的位置 -
F4 / Command + 方向鍵下
編輯/查看代碼源 -
Option + Home
顯示到當(dāng)前文件的導(dǎo)航條 -
F3
選中文件/文件夾/代碼行,添加/取消書簽 -
Option + F3
選中文件/文件夾/代碼行卑雁,使用助記符添加/取消書簽 -
Control + 0...Control + 9
定位到對(duì)應(yīng)數(shù)值的書簽位置 -
Command + F3
顯示所有書簽
七募书、Refactoring(重構(gòu))
-
F5
復(fù)制文件到指定目錄 -
F6
移動(dòng)文件到指定目錄 -
Command + Delete
在文件上為安全刪除文件,彈出確認(rèn)框 -
Shift + F6
重命名文件 -
Command + F6
更改簽名 -
Command + Option + N
一致性 -
Command + Option + M
將選中的代碼提取為方法 -
Command + Option + V
提取變量 -
Command + Option + F
提取字段 -
Command + Option + C
提取常量 -
Command + Option + P
提取參數(shù)
八测蹲、VCS/Local History(版本控制/本地歷史記錄)
-
Command + K
提交代碼到版本控制器 -
Command + T
從版本控制器更新代碼 -
Option + Shift + C
查看最近的變更記錄 -
Control + C
快速彈出版本控制器操作面板
九莹捡、Live Templates(動(dòng)態(tài)代碼模板)
-
Command + Option + J
彈出模板選擇窗口,將選定的代碼使用動(dòng)態(tài)模板包住 -
Command + J
插入自定義動(dòng)態(tài)代碼模板
十扣甲、General(通用)
-
Command + 1...Command + 9
打開相應(yīng)編號(hào)的工具窗口 -
Command + S
保存所有 -
Command + Option + Y
同步篮赢、刷新 -
Control + Command + F
切換全屏模式 -
Command + Shift + F12
切換最大化編輯器 -
Option + Shift + F
添加到收藏夾 -
Option + Shift + I
檢查當(dāng)前文件與當(dāng)前的配置文件 - Control + ` 快速切換當(dāng)前的scheme(切換主題、代碼樣式等)
-
Command + ,
打開IDEA系統(tǒng)設(shè)置 -
Command + ;
打開項(xiàng)目結(jié)構(gòu)對(duì)話框 -
Shift + Command + A
查找動(dòng)作(可設(shè)置相關(guān)選項(xiàng)) -
Control + Shift + Tab
編輯窗口標(biāo)簽和工具窗口之間切換(如果在切換的過程加按上delete琉挖,則是關(guān)閉對(duì)應(yīng)選中的窗口)
十一启泣、Other(一些官方文檔上沒有體現(xiàn)的快捷鍵)
-
Command + Shift +8
豎編輯模式
官方資料:
https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf
IntelliJ IDEA 常用快捷鍵講解(Win&Linux)
為了不占篇幅,我就不細(xì)說了粹排,基本上和mac的差不多(command換成ctrl)种远,詳情請(qǐng)看官方文檔:
https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf
本篇文章差不多就講這么多了。如果你喜歡vim顽耳,IDEA有很好用的vim插件供你使用坠敷,我就不細(xì)說了。
本來不打算寫這篇文章的射富,因?yàn)闃O客學(xué)院的那個(gè)教程寫的非常詳細(xì)膝迎。但是極客學(xué)院的圖片掛了。胰耗。限次。看不了圖片柴灯。github上有原文卖漫,但是github加載圖片太慢了,網(wǎng)不好的話赠群,一分鐘加載一張圖片也是有可能的羊始,不利于觀看。所以我挑了點(diǎn)有用的寫了一下查描,方便自己也方便別人突委。本來想多寫點(diǎn)的柏卤。但是突然就懶了。匀油。缘缚。
暫時(shí)先這樣吧。有什么問題請(qǐng)留言敌蚜。
放個(gè)地址桥滨,網(wǎng)好的自己去看更詳細(xì)的教程吧:
https://github.com/judasn/IntelliJ-IDEA-Tutorial