IDEA配置——自定義快捷鍵、生成注釋

實習(xí)的時候發(fā)現(xiàn)同事對IDEA不是那么順手,于是共享了下自己的settings,順便把之前發(fā)在個人博客上的文章照搬過來了。

注意:使用我的settings后,要重寫maven設(shè)置中的User Setting File、Local Repository以及Java compiler、structure for project保證JVM版本設(shè)置正確

Maven換源:

因為有段時間寫SpringBoot被依賴給坑過,所以把Maven換源寫在最前面。

IDEA是會有默認的Maven工具的, 因此之前如果修改過Maven配置, 還需要在IDEA中指定具體使用的是哪一個MAVEN,使用哪一個配置文件。

▲(Ctrl + Alt + S修改的是當(dāng)前工程), 如果需要對新工程進行修改, 則點擊File->New Projects Settings->Settings for new Projects

maven_idea.jpg

其中User settings file選擇之前配置過的Maven_settings就行了,換源在里面修改。注意, mirror標(biāo)簽要放在mirrors標(biāo)簽內(nèi)才能生效, 跟dependencies一樣, 我后來才發(fā)現(xiàn)我竟然沒放進去。

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
     
    <mirror>
      <id>aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

補充:

還可以在pom.xml文件中指定改源, 填下下列字段:

    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

自動補全提示:

菜單欄Settings(快捷鍵ctrl + alt + s)->Editr->General->Code Completion-> 取消選中"Match case"

IDEA自定義快捷鍵

功能 英文描述 快捷鍵
回退上一次光標(biāo)位置 back Ctrl +alt + ←
前進到下一次光標(biāo)位置 forward Ctrl +alt + →
選中當(dāng)前部分 extend selection Ctrl + D
復(fù)制當(dāng)前行↑ Duplicate Line or Selection shift + alt + ↑
復(fù)制當(dāng)前行↓ Duplicate Entire Lines shift + alt + ↓
切換到上行 Move Line Up alt+↑
切換到下行 Move Line Down alt+↓
下一個方法 next Method ctrl + alt+ ↓
上一個方法 Previous Method ctrl + alt+ ↑
生成getter等方法 generate ctrl + L
在下生成空白一行 Start New Line Shift + Enter
在上生成空白一行 Start New Line Before Current Ctrl+ Shift + Ctrl
完成該行——添加末尾分號+換到下行 Complete Current Statement ctrl + shift + enter
剪切改行(可當(dāng)成刪除改行使用) Cut ctrl + X
工程中跳轉(zhuǎn)指定class Navigate-class Ctrl + M
新建 Main Menu-File-New Ctrl + N
關(guān)閉當(dāng)前標(biāo)簽頁 Editor Tabs - Close Ctrl + W
切換到下一行 Split Line Ctrl + enter
代碼生成 Code - generate alt + L

未改變的快捷鍵設(shè)置

功能 英文描述 快捷鍵
格式化代碼 Reformat Code ctrl + alt + L
根據(jù)上下文完成動作(導(dǎo)包) Show Context Actions Alt + enter
優(yōu)化import導(dǎo)入 Optimize lmports Shift + Ctrl + O
插入生成模板(psvm) Insert Live Template Ctrl + J
打開設(shè)置面板 open settings Ctrl + alt + s
統(tǒng)一修改變量名 Main Menu - Refactor- Rename Shift + F6
搜索指定Class Main Menu-Navigate-class Ctrl + M
重寫方法 override Methods Ctrl + o
查看類繼承關(guān)系 ctrl+H
查看類繼承關(guān)系圖 ctrl+alt+shift+U

▲、以上以windows設(shè)置為模板修改

由于File->Manage IDE Settings->Export settings的內(nèi)容是不包含keyMap的,因此可以直接保存keyMap文件來備份,路徑為C:\Users\mrli\AppData\Roaming\JetBrains\IntelliJIdea2020.3\jba_config\win.keymaps

生成類注釋、文件注釋

沒弄圖, 主要是按照idea生成類注釋和方法注釋的正確方法配置的

生成類注釋

  1. 打開Preferences

  2. Editor -> File and Code Templates -> Files -> Class

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")

/**
* @program: ${PROJECT_NAME}
* @description: ${description}
* @author: MrLi
* @create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
**/

public class ${NAME} {
}

生成方法注釋

  1. 打開Preferences

  2. Editor -> Live Templates -> 點擊右邊加號為自己添加一個Templates Group -> 然后選中自己的Group->再次點擊加號添加Live Templates

  3. 記得要把最下面的提示▲.No applicable contexts yet.Define->設(shè)置為java

  4. 然后在Edit variables里面添加參數(shù)和返回值的自動取值

按上述步驟設(shè)置完后就可以使用了: 在方法上面直接輸入/ + 你設(shè)置的Abbreviation快捷鍵 + tab鍵就直接生成了 (我設(shè)置的是Abbreviation是q,那么通過/ + q + tab就可以調(diào)用導(dǎo)出了)

神秘密碼(Template text中填的):

$params$$returns$在Edit variables中分別選擇methodParameters(), methodReturnType()

** 
* @Description: $description$ 
* @Param: $params$ 
* @Return: $returns$ 
* @Author: MrLi
* @Date: $date$ 
*/ 

不錯的配置:

**
 * @author: Mrli
 * @description:  
 * @date: $date$ $time$$param$ $return$
 */

需要注意的是,datetimeExpression 使用的是 IDEA 內(nèi)置的函數(shù),直接使用下拉框選擇就可以了,而 param 這個參數(shù) IDEA 默認的實現(xiàn)很差,因此我們需要手動實現(xiàn),代碼如下:

groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param: ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())

另外 return 這個參數(shù)需要修改,代碼如下:

groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return: ' + \"${_1}\"", methodReturnType())

刪除沒有用到的包

1.手動快捷鍵

Ctrl + Alt + O1

2.配置自動清理

Ctrl + Alt + S 打開設(shè)置->editor->auto import
  • Optimize imports on the fly:自動去掉一些沒有用到的包

  • Add unambiguous imports on the fly: 自動幫我們優(yōu)化導(dǎo)入的包

Intellij idea 報錯:Error : java 不支持發(fā)行版本5

在Intellij中點擊“File” -->“Project Structure”,看一下“Project”和“Module”欄目中Java版本是否與本地一致:

解決方案: https://blog.csdn.net/qq_22076345/article/details/82392236

Intellij IDEA 神器居然還有這些小技巧[轉(zhuǎn)]

Java開發(fā)好用的插件

  • Codeglance: 代碼概覽

  • translation: 翻譯插件

  • grey console: 控制臺美化

  • restfultoolkit: 接口工具箱

  • gsonformater: json格式化工具

  • mybatis log plugin: sql日志插件

  • free mybatis plugin

  • Alibaba Java Coding Guidelines:阿里編程規(guī)范

  • codata: 人工智能代碼補全

  • easycode 自動生成mybatis mapper相關(guān)

  • lombok: setter/getter生成

  • SequenceDiagram: 時序圖分析

  • Maven Helper: maven依賴分析工具

  • Maven search: 依賴dependency查找工具

  • CamelCase: 單詞格式轉(zhuǎn)換

約定配置

設(shè)置編碼規(guī)定

設(shè)置編碼.png

設(shè)置編譯Java版本為8

java編譯版本.png

開啟注解編譯

開啟注解.png

(可選)將iml,.idea文件不顯示在工程中

ignorefiles.png

更多快捷鍵

左側(cè)的菜單欄上有除了我們常用的Project、Structure以外還有Bookmarks和Learn, 于是在好奇之下,就點擊學(xué)習(xí)了Learn中的內(nèi)容,其主要是關(guān)于Idea功能以及快捷鍵介紹的,對此記錄一下。

  • Ctrl + Alt + V: 提取變量, replace all occurences, 將對應(yīng)表達式全部抽取替換為一個變量, 比如我們很多地方用到了arr[i+1], 結(jié)果為了易讀性想把他直接寫成這個變量就可以直接使用這個功能

  • Ctrl +Shift + Alt +N: 搜索函數(shù)名(Symbols)

  • Shift + F6: 對某個字段全部重命名

  • 刪除沒用的字段, Alt + Enter 打開上下文后選擇 Safe Delete

  • Ctrl + Alt + T: 添加環(huán)繞代碼;Ctrl + Shift + delete刪除環(huán)繞代碼

  • Ctrl + -:折疊代碼; Ctrl + +: 展開代碼

  • Ctrl + Alt + Shift + T: 重構(gòu), 如introduce Parameter將選取的對象抽取為方法參數(shù);inlince Vairable取消行內(nèi)變量

  • if(?)的括號中,選擇某個選項(選項變藍即為選中, aa.contains()),輸入Shift+1即!,則直接會生成對應(yīng)的!aa.contains()==>if (!aa.contains())

Java短代碼(快捷代碼)

https://www.cnblogs.com/asio/p/12582328.html

  • psvm 或者 main :main()方法

  • sout :輸出語句

    • 變量.sout     ==> System.out.println(變量);
      soutv   ==> System.out.println("變量名 = " + 第一個成員變量變量(沒有的找方法參數(shù),再沒有找方法局部變量,再沒有輸出"true" + true));  
      指定變量.soutv ==> System.out.println("變量名 = " + 指定變量);  
      soutm  ==>  System.out.println("當(dāng)前類名.當(dāng)前方法");
      soutp ==>   soutp=System.out.println("方法形參名 = " + 形參名); //如果方法參數(shù)列表為空,則效果相當(dāng)于sout
      
  • fori:for循環(huán)語句

    • 類似的有
      // length.fori
          int length = 10;
          for (int i = 0; i < length; i++) {
          
          }
      // length.forr
          for (int i = length; i > 0; i--) {
                  
          }
      // array.fori
          int array[] = new int[10];
          for (int i = 0; i < arr.length; i++) {
                  
          }
      // array.for
          int array[] = new int[10];
          for (int i : arr) {
                  
          }
      
      // list.for:集合list的for循環(huán)語句
      list.fori
          List<String> list = new ArrayList<String>();
          for (int i = 0; i < list.size(); i++) {
                  
          }
      list.forr   //從尾到頭遍歷 
      
  • iter:可生成增強 for 循環(huán)

    iter:可生成增強 for 循環(huán)
        for (Object o : ) {
                
        }
    array.iter
        int array[] = new int[10];
      for (int i : arr) {
                
        }
    
    itar:可生成普通 for 循環(huán)
         for (int i = 0; i < array.length; i++) {
                 = array[i];
                
         }
    
  • ifn:可生成if(xxx = null),xxx為定義過的變量

  • prsf:可生成private static final

  • mn: ==>$VAR$ = Math.min($VAR$, $END$);生成取最值, 同樣的有mx,取最大值

  • geti==>生成getIntance方法

  • WL寫鎖、RL讀鎖,注操作對象為new ReentrantReadWriteLock()

  • lst: 獲得array最后一個元素

  • lazy:懶加載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容