實(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)迫癥)
1
2
|
//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è)特例,其他被$包裹的都是自定義變量
下面看一下,如何對變量進(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: 對生成的代碼進(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è)置方式,感興趣的請自行研究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鍵盤符號和修飾鍵說明
• 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)添加分號
•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 + 加號 / command + 減號 展開 / 折疊代碼塊
•command + shift + 加號 展開所以代碼塊
•command + shift + 減號 折疊所有代碼塊
•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)前所在代碼的花括號開始/結(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 定位到對應(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)編號的工具窗口
•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)對話框
•shift + command + a 查找動(dòng)作(可設(shè)置相關(guān)選項(xiàng))
•control + shift + tab 編輯窗口標(biāo)簽和工具窗口之間切換(如果在切換的過程加按上delete,則是關(guān)閉對應(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),詳情請看官方文檔:
https://www.jetbrains.com/idea/docs/intellijidea_referencecard.pdf
總結(jié)
原文鏈接:https://blog.csdn.net/qq_31655965/article/details/53424531