【方向盤】使用IDEA的60+個快捷鍵分享給你,權(quán)為了提效(視窗、選擇篇)
前言
時隔兩月,好久不見,回來繼續(xù)。
說到上篇文章,還要追溯到2022-02-01春節(jié)那天發(fā)的:【方向盤】使用IDEA的60+個快捷鍵分享給你,權(quán)為了提效(IDEA導航篇),介紹了IDEA導航相關(guān)快捷鍵,熟練使用后可快速定位代碼位置,從而提高工作效率。
本文繼續(xù),聊聊IDEA在視窗和選擇方面的快捷鍵操作。
所屬專欄
【方向盤】-IntelliJ IDEA。
相關(guān)下載
- 【本專欄源代碼】:https://github.com/yourbatman/FXP-java-ee。
- 【技術(shù)專欄源代碼大本營】:https://github.com/yourbatman/tech-column-learning。
- 【女媧Knife-Initializr工程】訪問地址:http://152.136.106.14:8761。
- 【程序員專用網(wǎng)盤】公益上線啦,注冊送1G超小容量,幫你實踐做減法:https://wangpan.yourbatman.cn。
- 【Java開發(fā)軟件包(Mac)】:https://wangpan.yourbatman.cn/s/rEH0 提取碼:javakit。
版本約定
- Mac OS 12.3。
- iTerm2 3.4.15(zsh 5.8)。
- IntelliJ IDEA 2021.3.3。
正文
- 視窗(view):內(nèi)容的載體。
- 選擇(selection):操作的目標。
IntelliJ IDEA快捷鍵
視窗
在圖形化界面里,視窗的重要性不言而喻。方便快捷的調(diào)出、隱藏、操作視窗,亦能有助于效率的提升。
下面筆者根據(jù)自身經(jīng)驗,介紹幾個常用的視窗快捷操作。
最近打開的文件
文件:包括.java、.class、.properties等一切文件類型。
如果只想看最近編輯過的的文件,那就再按一次該快捷鍵即可(當然嘍,你用鼠標點擊勾選上也是可以的):
最近所處的位置
上篇文章 里知道了回到“快速回到上次編輯處”的快捷鍵是command + shift + delete。這個快捷鍵就“更厲害”了,它可以顯示最近所處的位置(光標路過哪些地方),可以輔助command + shift + delete一起來達到快速定位的目的:
同樣的,如果只想查看最近所處的編輯過的位置,再按一次本快捷鍵即可。
實話說,這個快捷鍵筆者并不太經(jīng)常用,因為個人習慣喜歡用前進后退方式,但有時候饒的彎多了還是會用一下的。它對不同人的幫助效果可能是不一樣的,因人而異,自行拾取嘍。
(偏好)設置
IDEA的設置項基本都在該視窗里 。
這個快捷鍵不用多說,使用的頻率賊高。而且,在Mac操作系統(tǒng)里,軟件的(偏好)設置快捷鍵的都是它,(幾乎)沒有例外。
打開/隱藏Project視窗
要說IDEA里哪個視窗最常用,除了編輯窗口外,那絕對就是Project視窗了。
由于“屏幕”顯示面積有限,我們經(jīng)常需要隱藏/打開此視窗,該動作很明顯屬于高頻動作,所以特別適合用有個快捷鍵來“代替”,提高開發(fā)效率。
至于其它視窗(如Maven視窗、Run視窗、Debug視窗),都有(或者可以有)對應的快捷鍵。根據(jù)自己習慣需要,各取所需。
顯示/隱藏所有非編輯器窗口
首先得來個名詞解釋:什么叫編輯窗口?看圖就明白了:
編輯器窗口是每個IDE最重要的窗口,查看內(nèi)容、編輯等都在其中,其它視窗一般都只是輔助具有“暫時性”。
那么如上圖所示,當打開的視窗比較多了,已嚴重干擾到編輯器窗口的“顯示面積”時,怎么辦?
- 忍。不乏少數(shù),編輯器視窗一行只能顯示幾十個字符了、共只能顯示十幾行了,依舊能繼續(xù)干。
- 逐個關(guān)閉。這才是常規(guī)思維,把不需要的關(guān)掉,釋放區(qū)域給編輯器視窗。
- 一鍵隱藏所有非編輯器窗口。當目標非常明確時,使用此快捷鍵可快速達到目的。
實話說,該快捷鍵筆者用的頻率還是比較高的,因為不受干擾的沉浸式編程效率貌似確實高不不少,不信你也可以試試。
聚焦到/返回到編輯器
當你習慣了用鍵盤操作時,該快捷鍵可讓焦點回到編輯器里。比如正在Project視窗里查看項目時,就可以使用此快捷鍵(將光標、焦點)快速回到編輯區(qū)域嘍。
Tips:esc是讓焦點回到編輯器,語義別和command + shift + delete混淆。
選擇
修改名稱、批量修改、列編輯、選中查找的項...,這都是開發(fā)過程中的非常常見的“需求”嘛。下面一起來看一下
按行選擇
以焦點/光標位置為起點,向上/下逐行選中。它的特點是:沒有“感知”能力,不會有跳躍性,老老實實的按照行逐行選中。
說明:左右逐字選中,使用的是shift+←/→。
按模塊選擇
相較于按行選擇,它顯得更“智能”:能讀懂上下文,感知到什么叫模塊,然后可以一個模塊的快速選中,不管多長都可一步到位,十分高效。
顯然,這里需要補充一個小知識點,這里指的模塊有哪些:
- 一條語句,如:instances.add(instance)。
- 一個代碼塊:if(xxx) {xxx} 或者 try{xxx} catch(){xxx}等。
- 一個方法:private void fun(){ xxx }。
- ...
這種感知選擇的規(guī)則還蠻有意思:即保證了模塊的層級性,又盡快的選中模塊,好像能懂你一樣,這也是強類型語言的魔力?
Tips:這里上下箭頭不是存粹的代表方向,而代表了增/減量。比如,當沒有選擇任何模塊時,按option + ↓是無效的,即使下面還有代碼塊也不會向下選中。
查找上/下一個
該快捷鍵的底層是common +
f,只不過它無調(diào)起查找窗口,使用起來更為便捷。畢竟文件內(nèi)查找是非常常用的功能,所以IDEA提供了此便捷操作。而功能上,匹配的方式,完全由最近一次的common
+ f來決定。
比如上圖中,筆者將common + f功能限制為大小寫敏感:
再次按command + g會發(fā)現(xiàn)getKey中的Key就不再會被選中了。
筆者使用該快捷鍵的頻率很高,因為它比呼起查找窗口來得更方便快捷,而且能滿足我大部分時候的查找要求,畢竟大部分情況下咱都是精確查找嘛。
重復選擇
重復選擇下一個,重復選擇所有。這個功能在批操作時超級超級超級好用~
和上面的功能區(qū)別:上面永遠只會選中一個,而這里會選中多個,能進行批量編輯。
說明:該匹配規(guī)則為:文本全部匹配,和common + f無關(guān)。
三個光標,代表可以批量編輯嘍。
control + g會以第一個文本為基礎,繼續(xù)選擇下一個同名的文本(control + shift + g是取消選擇),如上圖所示,可以非常方便的批量修改,即使它們不在同一列、處在不同地方、不都是代碼(有注釋),可大大提高操作的效率。
同時,因為進入了“多光標”模式,也可以“批量移動光標”,再做你喜歡的操作。比較常見的operation有:在對應行的所有行頭/尾加/減內(nèi)容。
tips:請注意此功能和rename這種功能的定位區(qū)別,切忌混淆使用而導致寫bug啦。
該功能有個典型的應用場景,舉個例子,有如下一串內(nèi)容:
為了節(jié)約篇幅,這里只例舉10個數(shù)字,實際可能很長。
10|
7|
68|
13|
18|
121|
25|
100056|
32|
100|
要求將上面縱向排列的數(shù)字內(nèi)容,改為:
- 橫向排列。
- 數(shù)字之間改為使用逗號分隔(本來是使用|的嘛)。
對于這個case,有了這個快捷鍵就變得相當容易了,操作步驟如下:
1.選中一個|符號。
2.按control + command + g選中全部|符號,就像這樣:
3.輸入,替換掉|。
4.使用快捷鍵回到(所有行)行首,按delete鍵,將列變?yōu)樾?。大功告成?/p>
10,7,68,13,18,121,25,100056,32,100,
一般來講:對于上面這種簡單文本的編輯筆者會使用sublime text,恰巧此功能快捷鍵同IDEA??磥恚芏嘀髁鱅DE的快捷鍵都是遵循“規(guī)范”的,開發(fā)者切換起來也夠方便。
最后想強調(diào)一點:此快捷鍵雖好,請務必注意使用哦。此項操作屬于純文本操作,需特別注意選中編輯的范圍,避免誤傷。
特別在使用control + command + g全選時,一定要檢查清楚嘍(很長的單詞誤傷概率較小,短單詞要更加注意)。
切換到列模式
列編輯模式,特殊場景特殊用處。
使用該快捷鍵進入列模式后,界面不會有任何變化。那如何知道當前處在列模式or not呢?看右下角:
若多出了它,就說明編輯窗口當前處在列模式下,拖動鼠標/方向鍵就是按列編輯。
注意:按esc是無法退出列模式的,退出方式是:再按一次commond + shift + 8一般來講列模式只需要在某些瞬間開啟就行,不需要長期存在。所以IDEA提供了一種快捷方式:按住option鍵,然后豎向拖動光標,即可達到同樣的列編輯的效果,優(yōu)點比較明顯:隨用隨走。
列編輯模式筆者使用的頻率還是比較高的,比如一個非常非常典型的應用場景:批量修改訪問修飾符:
該怎么快速完成所有屬性訪問修飾符protected -> private的修改,這里就不做說明了。留作作業(yè),自己動手嘗試一下?
總結(jié)
本文繼續(xù)介紹了IDEA 視圖和選擇相關(guān)的快捷鍵,希望在文本編輯、代碼編輯的道路上能夠幫助到你來提高開發(fā)效率。
還是補上那句話:快捷鍵沒有任何技巧性,練就完了!