IDEA 快捷鍵終極大全

一、自動代碼

常用的有fori/sout/psvm+Tab即可生成循環、System.out、main方法等boilerplate樣板代碼 。

例如要輸入for(User user : users)只需輸入user.for+Tab ;
再比如,要輸入Date birthday = user.getBirthday()只需輸入user.getBirthday().var+Tab即可。

代碼標簽輸入完成后,按Tab,生成代碼。

  • Ctrl+Alt+O 優化導入的類和包
  • Alt+Insert 生成代碼(如get,set方法,構造函數等) 或者右鍵(Generate)
  • fori/sout/psvm + Tab
  • Ctrl+Alt+T 生成try catch 或者 Alt+enter
  • CTRL+ALT+T 把選中的代碼放在 TRY{} IF{} ELSE{} 里
  • Ctrl + O 重寫方法
  • Ctrl + I 實現方法
  • Ctr+shift+U 大小寫轉化
  • ALT+回車 導入包,自動修正
  • ALT+/ 代碼提示
  • CTRL+J 自動代碼
  • Ctrl+Shift+J,整合兩行為一行
  • CTRL+空格 代碼提示
  • CTRL+SHIFT+SPACE 自動補全代碼
  • CTRL+ALT+L 格式化代碼
  • CTRL+ALT+I 自動縮進
  • CTRL+ALT+O 優化導入的類和包
  • ALT+INSERT 生成代碼(如GET,SET方法,構造函數等)
  • CTRL+E 最近更改的代碼
  • CTRL+ALT+SPACE 類名或接口名提示
  • CTRL+P 方法參數提示
  • CTRL+Q,可以看到當前方法的聲明
  • Shift+F6 重構-重命名 (包、類、方法、變量、甚至注釋等)
  • Ctrl+Alt+V 提取變量

二、查詢快捷鍵

  • Ctrl+Shift+Backspace可以跳轉到上次編輯的地
  • CTRL+ALT+ left/right 前后導航編輯過的地方
  • ALT+7 靠左窗口顯示當前文件的結構
  • Ctrl+F12 浮動顯示當前文件的結構
  • ALT+F7 找到你的函數或者變量或者類的所有引用到的地方
  • CTRL+ALT+F7 找到你的函數或者變量或者類的所有引用到的地方
  • Ctrl+Shift+Alt+N 查找類中的方法或變量
  • 雙擊SHIFT 在項目的所有目錄查找文件
  • Ctrl+N 查找類
  • Ctrl+Shift+N 查找文件
  • CTRL+G 定位行
  • CTRL+F 在當前窗口查找文本
  • CTRL+SHIFT+F 在指定窗口查找文本
  • CTRL+R 在 當前窗口替換文本
  • CTRL+SHIFT+R 在指定窗口替換文本
  • ALT+SHIFT+C 查找修改的文件
  • CTRL+E 最近打開的文件
  • F3 向下查找關鍵字出現位置
  • SHIFT+F3 向上一個關鍵字出現位置
  • 選中文本,按Alt+F3 ,高亮相同文本,F3逐個往下查找相同文本
  • F4 查找變量來源
  • CTRL+SHIFT+O 彈出顯示查找內容
  • Ctrl+W 選中代碼,連續按會有其他效果
  • F2 或Shift+F2 高亮錯誤或警告快速定位
  • Ctrl+Up/Down 光標跳轉到第一行或最后一行下
  • Ctrl+B 快速打開光標處的類或方法
  • CTRL+ALT+B 找所有的子類
  • CTRL+SHIFT+B 找變量的類
  • Ctrl+Shift+上下鍵 上下移動代碼
  • Ctrl+Alt+ left/right 返回至上次瀏覽的位置
  • Ctrl+X 刪除行
  • Ctrl+D 復制行
  • Ctrl+/ 或 Ctrl+Shift+/ 注釋(// 或者/*...*/ )
  • Ctrl+H 顯示類結構圖
  • Ctrl+Q 顯示注釋文檔
  • Alt+F1 查找代碼所在位置
  • Alt+1 快速打開或隱藏工程面板
  • Alt+ left/right 切換代碼視圖
  • ALT+ ↑/↓ 在方法間快速移動定位
  • CTRL+ALT+ left/right 前后導航編輯過的地方
  • Ctrl+Shift+Backspace可以跳轉到上次編輯的地
  • Alt+6 查找TODO

三、其他快捷鍵?

  • SHIFT+ENTER 另起一行
  • CTRL+Z 倒退(撤銷)
  • CTRL+SHIFT+Z 向前(取消撤銷)
  • CTRL+ALT+F12 資源管理器打開文件夾
  • ALT+F1 查找文件所在目錄位置
  • SHIFT+ALT+INSERT 豎編輯模式
  • CTRL+F4 關閉當前窗口
  • Ctrl+Alt+V,可以引入變量。例如:new String(); 自動導入變量定義
  • Ctrl+~,快速切換方案(界面外觀、代碼風格、快捷鍵映射等菜單)

四、svn快捷鍵?

  • ctrl+k 提交代碼到SVN
  • ctrl+t 更新代碼

五、調試快捷鍵

其實常用的 就是F7、 F8、 F9 ,最值得一提的就是Drop Frame 可以讓運行過的代碼從頭再來。

  • alt+F8 debug時選中查看值
  • Alt+Shift+F9,選擇 Debug
  • Alt+Shift+F10,選擇 Run
  • Ctrl+Shift+F9,編譯
  • Ctrl+Shift+F8,查看斷點
  • F7,步入
  • Shift+F7,智能步入
  • Alt+Shift+F7,強制步入
  • F8,步過
  • Shift+F8,步出
  • Alt+Shift+F8,強制步過
  • Alt+F9,運行至光標處
  • Ctrl+Alt+F9,強制運行至光標處
  • F9,恢復程序
  • Alt+F10,定位到斷點

六、重構

  • Ctrl+Alt+Shift+T,彈出重構菜單
  • Shift+F6,重命名
  • F6,移動
  • F5,復制
  • Alt+Delete,安全刪除
  • Ctrl+Alt+N,內聯

七、十大Intellij IDEA快捷鍵

1、 智能提示:


Intellij首當其沖的當然就是Intelligence智能!基本的代碼提示用Ctrl+Space,還有更智能地按類型信息提示Ctrl+Shift+Space,但因為Intellij總是隨著我們敲擊而自動提示,所以很多時候都不會手動敲這兩個快捷鍵(除非提示框消失了)。

F2/ Shift+F2移動到有錯誤的代碼,Alt+Enter快速修復(即Eclipse中的Quick Fix功能)。當智能提示為我們自動補全方法名時,我們通常要自己補上行尾的反括號和分號,當括號嵌套很多層時會很麻煩,這時我們只需敲Ctrl+Shift+Enter就能自動補全末尾的字符。而且不只是括號,例如敲完if/for時也可以自動補上{ }花括號。

最后要說一點,Intellij能夠智能感知Spring、Hibernate等主流框架的配置文件和類,以靜制動,在看似“靜態”的外表下,智能地掃描理解你的項目是如何構造和配置的。


2、 重構:


Intellij重構是另一完爆Eclipse的功能,其智能程度令人瞠目結舌,比如提取變量時自動檢查到所有匹配同時提取成一個變量等。尤其看過《重構-改善既有代碼設計》之后,有了Intellij的配合簡直是令人大呼過癮!也正是強大的智能和重構功能,使Intellij下的TDD開發非常順暢。
切入正題,先說一個無敵的重構功能大匯總快捷鍵Ctrl+Shift+Alt+T,叫做Refactor This。按法有點復雜,但也符合Intellij的風格,很多快捷鍵都要雙手完成,而不像Eclipse不少最有用的快捷鍵可以瀟灑地單手完成(不知道算不算Eclipse的一大優點),但各位用過Emacs的話就會覺得也沒什么了(非Emacs黑)。

此外,還有些最常用的重構技巧,因為太常用了,若每次都在Refactor This菜單里選的話效率有些低。比如Shift+F6直接就是改名,Ctrl+Alt+V則是提取變量。


3 、代碼生成:


這一點類似Eclipse,雖不是獨到之處,但因為日常使用頻率極高,所以還是羅列在榜單前面。常用的有fori/sout/psvm+Tab即可生成循環、System.out、main方法等boilerplate樣板代碼,用Ctrl+J可以查看所有模板。

后面“輔助”一節中將會講到Alt+Insert,在編輯窗口中點擊可以生成構造函數、toString、getter/setter、重寫父類方法等。這兩個技巧實在太常用了,幾乎每天都要生成一堆main、System.out和getter/setter。
另外,Intellij IDEA 13中加入了后綴自動補全功能(Postfix Completion),比模板生成更加靈活和強大。例如要輸入for(User user : users)只需輸入user.for+Tab。再比如,要輸入Date birthday = user.getBirthday();只需輸入user.getBirthday().var+Tab即可。


4、 編輯:

編輯中不得不說的一大神鍵就是能夠自動按語法選中代碼的Ctrl+W以及反向的Ctrl+Shift+W了。此外,Ctrl+Left/Right移動光標到前/后單詞,Ctrl+[/]移動到前/后代碼塊,這些類Vim風格的光標移動也是一大亮點。以上Ctrl+Left/Right/[]加上Shift的話就能選中跳躍范圍內的代碼。Alt+Forward/Backward移動到前/后方法。還有些非常普通的像Ctrl+Y刪除行、Ctrl+D復制行、Ctrl+折疊代碼就不多說了。
關于光標移動再多擴展一點,除了Intellij本身已提供的功能外,我們還可以安裝ideaVim或者emacsIDEAs享受到Vim的快速移動和Emacs的AceJump功能(超爽!)。

另外,Intellij的書簽功能也是不錯的,用Ctrl+Shift+Num定義1-10書簽(再次按這組快捷鍵則是刪除書簽),然后通過Ctrl+Num跳轉。這避免了多次使用前/下一編輯位置Ctrl+Left/Right來回跳轉的麻煩,而且此快捷鍵默認與Windows熱鍵沖突(默認多了Alt,與Windows改變顯示器顯示方向沖突,一不小心顯示器就變成倒著顯式的了,冏啊)。


5 、查找打開:

類似Eclipse,Intellij的Ctrl+N/Ctrl+Shift+N可以打開類或資源,但Intellij更加智能一些,我們輸入的任何字符都將看作模糊匹配,省卻了Eclipse中還有輸入*的麻煩。最新版本的IDEA還加入了Search Everywhere功能,只需按Shift+Shift即可在一個彈出框中搜索任何東西,包括類、資源、配置項、方法等等。
類的繼承關系則可用Ctrl+H打開類層次窗口,在繼承層次上跳轉則用Ctrl+B/Ctrl+Alt+B分別對應父類或父方法定義和子類或子方法實現,查看當前類的所有方法用Ctrl+F12。
要找類或方法的使用也很簡單,Alt+F7。要查找文本的出現位置就用Ctrl+F/Ctrl+Shift+F在當前窗口或全工程中查找,再配合F3/Shift+F3前后移動到下一匹配處。
Intellij更加智能的又一佐證是在任意菜單或顯示窗口,都可以直接輸入你要找的單詞,Intellij就會自動為你過濾。


6、 其他輔助:

以上這些神鍵配上一些輔助快捷鍵,即可讓你的雙手90%以上的時間擺脫鼠標,專注于鍵盤仿佛在進行鋼琴表演。這些不起眼卻是至關重要的最后一塊拼圖有:

  • ? 命令:Ctrl+Shift+A可以查找所有Intellij的命令,并且每個命令后面還有其快捷鍵。所以它不僅是一大神鍵,也是查找學習快捷鍵的工具。
  • ? 新建:Alt+Insert可以新建類、方法等任何東西。
  • ? 格式化代碼:格式化import列表Ctrl+Alt+O,格式化代碼Ctrl+Alt+L。
  • ? 切換窗口:Alt+Num,常用的有1-項目結構,3-搜索結果,4/5-運行調試。Ctrl+Tab切換標簽頁,Ctrl+E/Ctrl+Shift+E打開最近打開過的或編輯過的文件。
  • ? 單元測試:Ctrl+Alt+T創建單元測試用例。
  • ? 運行:Alt+Shift+F10運行程序,Shift+F9啟動調試,Ctrl+F2停止。
  • ? 調試:F7/F8/F9分別對應Step into,Step over,Continue。

此外還有些我自定義的,例如水平分屏Ctrl+|等,和一些神奇的小功能Ctrl+Shift+V粘貼很早以前拷貝過的,Alt+Shift+Insert進入到列模式進行按列選中。

  • ? Top #10切來切去:Ctrl+Tab
  • ? Top #9選你所想:Ctrl+W
  • ? Top #8代碼生成:Template/Postfix +Tab
  • ? Top #7發號施令:Ctrl+Shift+A
  • ? Top #6無處藏身:Shift+Shift
  • ? Top #5自動完成:Ctrl+Shift+Enter
  • ? Top #4創造萬物:Alt+Insert

太難割舍,前三名并列吧!

  • ? top #1智能補全:Ctrl+Shift+Space
  • ? Top #1自我修復:Alt+Enter
  • ? Top #1重構一切:Ctrl+Shift+Alt+T
  • ? CTRL+ALT+ left/right 前后導航編輯過的地方
  • ? Ctrl+Shift+Backspace可以跳轉到上次編輯的地方

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273679.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273679.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273679.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數組中只出現一次的數字

題目:一個整型數組里,除了兩個數字以外,其他數字都出現了兩次,請寫程序找到這兩個只出現一次的數字。要求:時間復雜度為O(n),空間復雜度為O(1). 分析:看到這題,首先要明白,這是求兩個…

iOS工作筆記之NSClassFromString

id myObj [[NSClassFromString("MySpecialClass") alloc] init]; 和 id myObj [[MySpecialClass alloc] init]; 是一樣的。但是,如果你的程序中并不存在MySpecialClass這個類,下面的寫法會出錯,而上面的寫法只是返回一個空對象而…

Maven 使用bat批量清除本地倉庫的lastUpdated文件

echo off set REPOSITORY_PATHC:\Users\Administrator\.m2\repository rem 正在搜索... for /f "delims" %%i in (dir /b /s "%REPOSITORY_PATH%\*lastUpdated*") do ( del /s /q %%i ) rem 搜索完畢 pause 新建一個文件txt文件,把.txt后綴…

“ddl”有一個無效 SelectedValue,因為它不在項目列表中。

“ddl_ekt”有一個無效 SelectedValue,因為它不在項目列表中。 怎么回事 現象: 在用戶控件的page_load事件里綁定下拉框,報上面錯誤 解決: 將下拉框綁定,放在page_Init事件里 這可能跟服務器加載控件的生命過程有關系轉載于:https…

springbot 注入多實例

方式一: 在需要多實例的類上加入注解: Scope("prototype") 方式二: 在啟動類上加入: BeanScope(value ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode ScopedProxyMode.TARGET_CLASS)public PrototypeClass…

javascript日歷插件

javascript日歷插件 原文:javascript日歷插件javascript日歷插件 最近在嘗試著寫javascript日歷插件,所以也到github上看國外人日歷源碼,或者國內人寫的好點的,也在研究點,雖然看到網上有一大把的日歷控件,但是沒有幾個…

idea 重啟

1、通過File–>Invalidate Caches/Restar...進入重啟窗口 2、選擇自己所需要的重啟方式,四個按鈕,一共三種重啟方式: Invalidate and Restart 清空緩存并重啟。Invalidate 清除緩存,下次打開重啟。Cancel 取消。Just Restart …

Kernel Page Global Directory (PGD) of Page table of Process created in Linux Kernel

Kernel Page Global Directory (PGD) of User process created 在早期版本: 在fork一個進程的時候,必須建立進程自己的內核頁目錄項(內核頁目錄項要與用戶空間的頁目錄放在同一個物理地址連續的頁面上,所以不能共享,但所有進程的內…

POI 導出文件以文件流形式返回

POI工具類 import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import o…

Json串和java對象進行轉時

json-lib-xxx.jarezmorph-xxx.jar //>依賴包 JsonConfig config new JsonConfig();//有選擇性的過濾掉一些屬性值 JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(new String[] { "yyyy-MM-dd" }));//注冊一個json轉為java.util.date的日期格…

Mybatis Integer類型參數值為0時判斷為空、空字符串不通過

根據狀態查詢是&#xff0c;由于status是Integer類型&#xff0c;所以當前狀態為0時&#xff0c;變成了查詢了所有的狀態信息。 <if test"requestParam.status ! null and requestParam.status ! ">and s.status #{requestParam.status} </if> 原因&a…

BZOJ 3391: [Usaco2004 Dec]Tree Cutting網絡破壞(搜索)

這道直接遍歷一遍求出每個點的子節點數目就行了 CODE&#xff1a;#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define maxn 50010int b[maxn],q[maxn],id[maxn],ans[maxn];bool cmp(int x,int y){re…

Fast Matrix Operations

uva11992:http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem3143 題意&#xff1a;給你n*m的矩陣初始化的時候矩陣里面的元素全部是0&#xff0c;對于這個矩陣有3中操作。 1 x1 y1 x2 y2 v 把&#xff08;x1 y1 x2…

linux ll命令無效

1.編輯~/.bashc vim ~/.bashc 若vi/vim命令無效&#xff0c;參考 bash: vi: command not found/bash: vim: command not found 2.重新執行剛修改的初始化文件 source ~/.bashc

jquery不同版本沖突導致低版本功能不能用

oConflict() 方法讓渡變量 $ 的 jQuery 控制權。 該方法釋放 jQuery 對 $ 變量的控制。 使用方法&#xff1a; var jq $.noConflict();//轉換控制權 jq(document).ready(function () { jq("#outside").click(function () {你的操作...... }); }); });轉載于:https:/…

struts2+jquery 實現ajax登陸

一、新建一個web項目&#xff1a;test,配置好struts2的環境(詳細配置見&#xff1a;http://www.cnblogs.com/wuweidu/p/3841297.html) 導入Jquery的js文件到項目 二、在com.action包下&#xff0c;新建一個loginAction.java loginAction.java的代碼如下 package com.action;imp…

hdu 2026 首字母變大寫

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid2026 題目大意&#xff1a;將一個英文句子&#xff0c;每個單詞第一個首字母變大寫。 1 #include <stdio.h>2 int main (void)3 {4 int i;5 char ch[100];6 while(gets(ch))7 {8 for (i0; c…

Docker Kafka 單機版安裝

一、安裝 下載library/zookeeper并運行 docker run --name zookeeper -d -p 2181:2181 -v /etc/localtime:/etc/localtime library/zookeeper 測試zookeeper端口是否通wget IP:2181 下載wurstmeister/kafka并運行 docker run -d --name kafka -p 9092:9092 --link zookeeper…

HDU1429勝利大逃亡(續)HDU 1885 Key Task BFS+狀態壓縮+水

HDU1429 只有10把鑰匙 1<<10足夠了 標記用三維數組 用Linux好不習慣 繼續克服&#xff5e; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <limits.h> #include <malloc.h> #include <ctype.h> #include &l…

Docker 安裝nginx,并掛載文件

創建掛載所需目錄&#xff1a; mkdir /test/server/nginx/{conf,logs,html,conf.d} /test/server/nginx/conf創建nginx.conf文件&#xff0c;并編輯: user nginx; worker_processes 1;error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;events {wor…