妙用 Intellij IDEA 建立臨時檔案,Git 跟蹤不到的那種
阿新 • • 發佈:2020-11-05
| **好看請贊,養成習慣**
> - 你有一個思想,我有一個思想,我們交換後,一個人就有兩個思想
>
> - If you can NOT explain it simply, you do NOT understand it well enough
現陸續將Demo程式碼和技術文章整理在一起 [Github實踐精選](https://github.com/FraserYu/learnings) ,方便大家閱讀檢視,本文同樣收錄在此,覺得不錯,還請Star
---
多數人對於 Intellij IDEA 可能始於其「顏值」,終於其「才華」,外加各種外掛 buff 的加成,coding 的節奏分分鐘要暴走
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131141980-1996071453.png)
拋開自己安裝的外掛,IDEA 其實也內秀的很,在 [IntelliJ IDEA HTTP Client高階使用詳解](https://dayarch.top/p/http-client-advanced-usage.html) 中詳細的介紹了開發小組內放棄 Postman 的理由,用過的小夥伴後臺留言直呼爽。
但今天要介紹的是另外一個秀的有些含蓄的小功能,她那麼顯眼的站在你面前,你卻選擇忽視她
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131142286-387399428.png)
有時候我們需要在專案之外建立一些臨時檔案或一些實驗性程式碼,建立在專案中可能一不小心 Git 誤提交,不建立專案裡又需要切換到其他應用上來回拷貝,對於專注 coding 的我們來說,總顯得不夠流暢
IDEA 其實早已為我們解決了這個痛點,藉助 Scratch files 和 Scratch buffers 就可以解決
## Scratch files | Scratch buffers
IDEA 會在專案平行目錄中自動生成下面的目錄結構,這就是今天主角的位置,你有正視過她們嗎?
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131142628-1088856981.png)
Scratch files 和 Scratch buffers 二者還是有很大差別的:
### Scratch files
Scratch files 是一種功能完整的、可執行的和可除錯的檔案,支援語法高亮顯示、程式碼補全和相應檔案型別的所有其他特性 (說白了很像Jupyter Notebooks)
Scratch file 的功能,就可以滿足我們在 Coding 中的各種想法,用於快速記錄。建立好的這個檔案並不儲存在我們的專案目錄中(避免了意外 git push 的尷尬),甚至在 IDEA 中切換到其他專案中也可以看到你剛剛建立的這個檔案,進一步說白一點,這是凌駕在專案之上的一個全域性功能,如下圖,切換到了其他專案中,Scratch files 依舊存在
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131142908-91397237.png)
建立一個 Scratch file 很簡單,使用快捷鍵 `⇧⌘N` ,支援關鍵字搜尋,直接建立相應型別的檔案就可以,比如這裡建立一個 java 檔案
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131143167-1903720773.png)
預設會建立名為 Scratch.java 的檔案,並寫好 main 函式,就像這樣:
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131143348-674416324.png)
在這裡和你正常在專案中寫 java 程式碼沒什麼區別,你可以使用 `git status` 命令來驗證,結果是 Git 完全不 track 的,放心的建立臨時檔案就好了
其實我很常用的是建立一個 scratch.sql 檔案,存放一些日常 SQL 語句,同樣的建立方式,搜尋 `sql` 預設會建立一個 scratch.sql 的檔案,檔案建立之後要配置資料來源
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131144305-1595913408.png)
配置好後,就可以盡情的書寫你日常用到的 SQL 了
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131145072-280047261.png)
游標放到 SQL 位置,使用快捷鍵 `⌘⏎` ,選擇相應的 Session (會話) 就可以 run 這條 SQL 語句了
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131145554-654958884.png)
執行後,就看到你熟悉的畫面了,因為這裡的畫面就是 IDEA 預設的資料庫管理工具,這篇 [IntelliJ IDEA的資料庫管理工具實在太方便了](https://mp.weixin.qq.com/s/SmjBdZAMynTndU_oTITd8Q) 文章中有過詳細說明
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131146052-655079599.png)
建立 Scratch files 可選擇的型別非常多,總有一個適合你的一些需要
### Scratch buffers
和 Scratch files 類似,只不過 Scratch buffers 就是一個簡單的文字檔案,沒有任何編碼輔助功能 (說白了,可以將它理解成一個記事本),建立 Scratch buffers 沒有直接的快捷鍵,需要用通用快捷鍵 `⇧⌘A` ,並輸入關鍵字(比如 buffer):
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131146485-2003080640.png)
敲擊回車鍵,就會建立好一個名為 scratch.txt 的文字檔案。**反覆建立 Scratch buffers,你會發現,最多隻允許建立 5 個**:
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131146815-208435413.png)
因為這個操作不頻繁,所以也就沒有預設快捷鍵,如果你是個快捷鍵強迫症患者,那就在 KeyMap 處新增相應的快捷鍵就可以了
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131147252-1400278096.png)
這裡要說明一個**注意事項**:
> 如果你在 buffer1.txt 檔案中記錄了一些內容,當你建立第 6 次 scratch buffer 檔案時,buffer1.txt 的內容就會被清空
別看 Scratch files 和 Scratch buffers 不會被 Git 跟蹤,但是同樣可以通過滑鼠右鍵檢視 Local History 來檢視過往所有改動
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131147707-1211862712.jpg)
減少應用切換,儘量保持專注,可以藉助預覽模式(ctrl+opt+v) 和 快捷鍵 (cmd+e)切換最近常用檔案,戴上耳機,快告訴我,時速多少邁?
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131148628-2059746534.png)
## 總結
這是一個很小的功能,但是在日常開發中真的可以帶來很大的幫助:
- 跨越專案的訪問
- 不被 Git 所跟蹤,防止誤提交
- 可以臨時測試各種語言的程式碼
最後配合預覽模式的使用,減少應用之間的切換,一切顯得都很流暢
> 當然,保持 Code Clean,減少猜測和回憶時間,我們最好給我們建立的 Scratch files 和 Scratch buffers 更友好的檔名稱
[個人部落格:https://dayarch.top](https://dayarch.top)
[加我微信好友](https://mp.weixin.qq.com/s/G7BXuZh0Qh1-mE6ts4LJqQ), 進群娛樂學習交流,備註「進群」
> ### 歡迎持續關注公眾號:「日拱一兵」
> - 前沿 Java 技術乾貨分享
> - 高效工具彙總 | 回覆「工具」
> - 面試問題分析與解答
> - 技術資料領取 | 回覆「資料」
> 以讀偵探小說思維輕鬆趣味學習 Java 技術棧相關知識,本著將複雜問題簡單化,抽象問題具體化和圖形化原則逐步分解技術問題,技術持續更新,請持續關注......
---
![](https://img2020.cnblogs.com/other/1583165/202011/1583165-20201105131151370-1912987