IDEA2024 配置詳解與高效使用指南
換上IDEA2024之后個(gè)人生產(chǎn)力相較于過(guò)去有了更進(jìn)一步的提高,本文會(huì)從配置、使用兩個(gè)角度簡(jiǎn)單介紹一下從舊版本IDEA遷移到2024版本時(shí)需要注意的幾個(gè)事項(xiàng)和配置,希望對(duì)你有幫助。
一、初始化配置
1. 界面背景色配置(可選)
24版默認(rèn)情況下背景色為黑色,按照筆者個(gè)人習(xí)慣是將IDEA設(shè)置為白色經(jīng)典界面,此項(xiàng)設(shè)置我們可以直接通過(guò)File | Settings | Appearance & Behavior | Appearance,找到Theme選擇Light相關(guān)的配置,完成此項(xiàng)配置后整個(gè)界面背景色就是白色了。
2. 項(xiàng)目編碼以及全局編碼配置
24版本默認(rèn)編碼會(huì)跟隨系統(tǒng)走,所以我們每次初始化項(xiàng)目時(shí),需要記得隨手修改編碼格式,通過(guò)File | Settings | Editor | File Encodings找到編碼選項(xiàng)即可完成配置:
當(dāng)然為了方便后續(xù)項(xiàng)目的使用,我們也可以通過(guò)全局設(shè)置的方式設(shè)置統(tǒng)一編碼格式,即通過(guò)File | New Projects Setup| Settings for New Projects..進(jìn)入新項(xiàng)目的通用設(shè)置:
再通過(guò)File | Settings | Editor | File Encodings將全局編碼統(tǒng)一設(shè)置為UTF8,這樣一來(lái)后續(xù)的項(xiàng)目就統(tǒng)一采用UTF8格式打開編碼了:
3. JDK版本配置
24版本默認(rèn)情況下language level直接從JDK22開始,所以我們?nèi)粘4蜷_項(xiàng)目時(shí)需要記得將JDK版本設(shè)置為8,同樣的我們通過(guò)通過(guò)File |Project Structure|Project找到JDK的所有配置將其設(shè)置為JDK8版本即可:
4. maven全局配置
我們?nèi)粘U{(diào)試項(xiàng)目需要查看源碼的時(shí)候會(huì)通過(guò)download source進(jìn)行源碼下載閱讀,24版本默認(rèn)情況下使用的是3.9版本,所以我們需要通過(guò)File | Settings | Build, Execution, Deployment | Build Tools | Maven將maven修改為我們當(dāng)前使用的maven版本,以筆者為例,對(duì)應(yīng)設(shè)置的maven版本設(shè)置為3.5.4:
同時(shí)我們也建議去掉Work offline這個(gè)選項(xiàng),關(guān)閉離線模式:
5. 側(cè)邊欄跟隨點(diǎn)擊的代碼
初始情況下,我們打開IDEA點(diǎn)擊Tab欄上的文件,左側(cè)是不會(huì)跟隨打開的,所以我們可以找到側(cè)邊欄的behavior設(shè)置勾選下述三個(gè)選項(xiàng)確保文件點(diǎn)擊跟隨
6. 修復(fù)GitLab提示輸入token的問(wèn)題
新版本IDEA在使用gitLab拉取項(xiàng)目時(shí)存在要求配置token的情況,對(duì)此我們也需要在安裝后對(duì)GitLab插件進(jìn)行配置規(guī)避該問(wèn)題:
解決方式也很簡(jiǎn)單,通過(guò)File | Settings | Plugins找到gitlab插件,將其disable即可,完成配置后Gitlab插件就如下圖所示:
7. 調(diào)整堆內(nèi)存
對(duì)于新版本的IDEA2024來(lái)說(shuō),由于增加了很多的新功能和新特性,所以我們需要分配更大的堆內(nèi)存來(lái)避免頻繁GC導(dǎo)致IDEA操作的卡頓感。
對(duì)應(yīng)配置步驟比較簡(jiǎn)單,我們可以通過(guò)Edit Custom VM Options配置參數(shù),也可以通過(guò)下圖所示的方式即在Help一欄找到Change Memory Settings采用UI配置的方式調(diào)整堆內(nèi)存大?。?/p>
以筆者為例,直接設(shè)置最大堆內(nèi)存為8G,完成后選擇save或者save and restart使之生效即可:
二、源碼檢索
1. 查看字節(jié)碼
24版本依然支持查看字節(jié)碼文件,我們只需將文件編譯之后,找到View下的show Bytecode即可看到需要的字節(jié)碼文件:
然后我們就可以看到對(duì)應(yīng)的代碼對(duì)應(yīng)編譯后的字節(jié)碼了:
2. 文件搜索
IDEA24版本相較于之前筆者所使用版本,搜索功能變得更加強(qiáng)大,所以對(duì)于文件的檢索范圍會(huì)更廣一些,這里筆者以搜索hashmap為例演示一下這個(gè)操作,如下圖所示,可以看到筆者雙擊shift喚醒快捷搜索,然后輸入關(guān)鍵字hashmap,針對(duì)all即可看到所有的選項(xiàng),此時(shí)我們可以點(diǎn)擊下圖所示的logo展開選中搜索項(xiàng)對(duì)應(yīng)所有文件類型的結(jié)果:
如果我們希望僅僅搜索類結(jié)果可以包含源碼,可以勾選include non-project items獲?。?/p>
當(dāng)然我們也可以直接通過(guò)點(diǎn)擊右邊的tab欄進(jìn)行個(gè)性化篩選(僅查詢項(xiàng)目中的類或者項(xiàng)目和類庫(kù)中的),這一點(diǎn)讀者可以按照個(gè)人習(xí)慣使用:
3. 長(zhǎng)函數(shù)快速定位
有時(shí)候我們會(huì)閱讀一個(gè)很長(zhǎng)的方法,閱讀這樣的長(zhǎng)方法時(shí)可能會(huì)忘了這個(gè)函數(shù)的定義,此時(shí)我們又不得不回頭看看,24版IDEA對(duì)此進(jìn)行了優(yōu)化,如下對(duì)于FutureTask的源碼閱讀,可以看到無(wú)論我們?cè)趺礉L動(dòng)代碼,這個(gè)方法以及類的定義始終浮在上方。
更神奇的是我們點(diǎn)擊這個(gè)方法又可以快速回到方法頂部:
4. 查看變量調(diào)用
總所周知我們查看成員變量的調(diào)用處可以通過(guò)CTRL+B快速檢索所有用到的地方,對(duì)應(yīng)2024版本的IDEA對(duì)此快捷鍵的搜索范圍進(jìn)行了更進(jìn)一步的優(yōu)化。
我們還是以FutureTask源碼閱讀為例,此時(shí)筆者希望查看status變量的調(diào)用處,于是我們鍵入快捷鍵CTRL+B查看,結(jié)果如下圖所示,它會(huì)提示當(dāng)前項(xiàng)目中并沒有用到這個(gè)變量,我們可以通過(guò)快捷鍵Ctrl+Alt+F7進(jìn)行更進(jìn)一步的范圍檢索。
以筆者的習(xí)慣,筆者會(huì)點(diǎn)擊右上角的設(shè)置擴(kuò)展檢索范圍:
這里筆者通常會(huì)選擇項(xiàng)目或者類庫(kù):
完成后點(diǎn)擊Find最終所有的調(diào)用就都出來(lái)了:
5. 查看方法或者變量調(diào)用詳細(xì)路徑
這里再介紹一種更使用的檢索字段或者方法調(diào)用詳情的檢索快捷鍵,我們將光標(biāo)停在方法或者字段上,然后鍵入Alt+F7,即可看到當(dāng)前要查看的字段或者方法的調(diào)用路徑。
以筆者為例,可以看到對(duì)于run方法的調(diào)用處檢索,通過(guò)左邊即可定位到調(diào)用,然后右邊即可查看調(diào)用詳情:
6. 查看todo項(xiàng)
我們?nèi)粘_M(jìn)行code review的時(shí)候會(huì)進(jìn)行代碼走查和todo項(xiàng)的檢索,這時(shí)候我們就可以通過(guò)view找到Tool Windows找到TODO的配置并點(diǎn)擊:
隨后我們就可以在todo欄看到我們項(xiàng)目中所有的todo注釋,需要查看詳情我們直接點(diǎn)擊即可,這里就不多做贅述了:
7. 調(diào)試時(shí)不進(jìn)入流操作細(xì)節(jié)
如下代碼,我們?nèi)粘榱朔奖阏{(diào)試,在配置IDEA的時(shí)候可能會(huì)放行所有java.*的源碼包,這使得我們?cè)谡{(diào)試流操作時(shí)可能就會(huì)步入繁雜的流式轉(zhuǎn)換的源碼中:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
list = list.stream()
.map(x -> x * x)
.filter(x -> x % 2 == 0)
.collect(Collectors.toList());
System.out.println(list);
例如我們?cè)谏鲜龃a的map映射流操作中打了個(gè)斷點(diǎn),調(diào)試時(shí)就會(huì)不斷在stream包下游走,影響調(diào)試的效率:
所以我們可以通過(guò)File | Settings | Build, Execution, Deployment | Debugger | Stepping找到斷點(diǎn)步進(jìn)調(diào)試配置,點(diǎn)擊+號(hào)添加配置選擇ADD Pattern添加調(diào)試時(shí)不步進(jìn)的源碼包:
輸入java.util.stream.*點(diǎn)擊確定,由此后續(xù)進(jìn)行流調(diào)試時(shí)就不會(huì)步入流操作源碼細(xì)節(jié):
三、調(diào)試源碼
1. 快速跳到下一斷點(diǎn)
項(xiàng)目開發(fā)最重要的就是調(diào)試,24版本對(duì)IDEA的調(diào)試也做了許多人性化的調(diào)整,如下所示,如果筆者希望從這個(gè)跳過(guò)這幾個(gè)函數(shù)到達(dá)最后一行輸出,我們秩序點(diǎn)擊這個(gè)游標(biāo):
最終代碼就會(huì)落到我們希望的位置上:
2. watch觀察變量的變化
IDEA是支持對(duì)于變量進(jìn)行個(gè)性化計(jì)算和觀察的,如下代碼所示,如果筆者希望每次看到i+1的變化,我們則可以通過(guò)配置watch做到這一點(diǎn)。
public static void main(String[] args) {
int i=3;
i++;
i=i<<2;
System.out.println(i);
}
操作步驟如下圖所示,在變量監(jiān)控一欄鍵入i+1即你的個(gè)性化監(jiān)控邏輯,然后點(diǎn)擊add:
可以看到我們的watch顯示的是個(gè)性運(yùn)算結(jié)果,這對(duì)于很多業(yè)務(wù)場(chǎng)景變量的監(jiān)控還是很有幫助的,例如我們希望觀察Order類的pay數(shù)值,我們就可以通過(guò)watch鍵入order.getPay()即可實(shí)時(shí)觀察這個(gè)變量的走向和變化:
3. 調(diào)試時(shí)賦值
這是筆者日常開發(fā)時(shí)的技巧,如果我們希望調(diào)試時(shí)改變變量的值,可以同通過(guò)Alt+F8的變量分析做到這一點(diǎn)。 一下圖的代碼為例,可以看到i的值按照正常的數(shù)據(jù)流向會(huì)變?yōu)?6,此時(shí)如果
于是我們鍵入快捷鍵,在分析欄進(jìn)行賦值,可以看到,我們改變的數(shù)據(jù):
四、開發(fā)技巧
1. 配置遠(yuǎn)程連接客戶端
新版本的IDEA支持直接在terminal上連接WSL和配置SSH遠(yuǎn)程連接,我們只需點(diǎn)擊終端旁邊的箭頭即可進(jìn)行配置了:
以筆者為例,因?yàn)楸緳C(jī)已經(jīng)安裝了WSL,所以直接點(diǎn)擊WSL之后即可直接操作Linux子系統(tǒng)了:
2. 調(diào)整Git提交時(shí)的檢查
最后一點(diǎn)算是一個(gè)日常操作歸檔吧,每次提交GIT時(shí)都要等好一段時(shí)間,這是因?yàn)镮DEA默認(rèn)提交代碼時(shí)會(huì)對(duì)代碼進(jìn)行分析,如果我們希望取消代碼分析和todo檢查可以直接點(diǎn)擊左邊Tab欄的右下角
然后去掉這兩個(gè)選項(xiàng)即可:
3. 添加File mask
IDEA 2024版進(jìn)行全局搜索的時(shí)候不支持根據(jù)文件類型進(jìn)行過(guò)濾,對(duì)此筆者查閱網(wǎng)上的方案找到了配置方案,首先我們要到C:\xxx\xxxx\AppData\Roaming\JetBrains\IntelliJIdea2024.2\options找到一個(gè)名為find.xml的文件,默認(rèn)情況下我們看到的配置如下,可以看到?jīng)]有任何文件后綴的配置:
對(duì)此我們按照添加mask標(biāo)簽,并指明需要進(jìn)行過(guò)濾的文件后綴,以筆者為例,對(duì)應(yīng)的配置如下所示:
<application>
<component name="FindSettings">
<option name="customScope" value="Project Files" />
<option name="defaultScopeName" value="Project Files" />
<option name="SEARCH_SCOPE" value="Project Files" />
<mask>*.java</mask>
<mask>*.xml</mask>
<mask>*.yml</mask>
<mask>*.properties</mask>
<mask>*.html</mask>
<mask>*.css</mask>
<mask>*.js</mask>
<mask>*.jsp</mask>
<mask>*.vue</mask>
<mask>*.md</mask>
<mask>*.json</mask>
</component>
</application>
完成后我們將IDEA重啟,此時(shí)我們的全局搜索CTRL+shift+F就可以按照格式文件后綴進(jìn)行過(guò)濾了: