妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种
| 好看请赞,养成习惯
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想
If you can NOT explain it simply, you do NOT understand it well enough
现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star
多数人对于 Intellij IDEA 可能始于其「颜值」,终于其「才华」,外加各种插件 buff 的加成,coding 的节奏分分钟要暴走

抛开自己安装的插件,IDEA 其实也内秀的很,在 IntelliJ IDEA HTTP Client高级使用详解 中详细的介绍了开发小组内放弃 Postman 的理由,用过的小伙伴后台留言直呼爽。
但今天要介绍的是另外一个秀的有些含蓄的小功能,她那么显眼的站在你面前,你却选择忽视她

有时候我们需要在项目之外创建一些临时文件或一些实验性代码,创建在项目中可能一不小心 Git 误提交,不创建项目里又需要切换到其他应用上来回拷贝,对于专注 coding 的我们来说,总显得不够流畅
IDEA 其实早已为我们解决了这个痛点,借助 Scratch files 和 Scratch buffers 就可以解决
Scratch files | Scratch buffers
IDEA 会在项目平行目录中自动生成下面的目录结构,这就是今天主角的位置,你有正视过她们吗?

Scratch files 和 Scratch buffers 二者还是有很大差别的:
Scratch files
Scratch files 是一种功能完整的、可运行的和可调试的文件,支持语法高亮显示、代码补全和相应文件类型的所有其他特性 (说白了很像Jupyter Notebooks)
Scratch file 的功能,就可以满足我们在 Coding 中的各种想法,用于快速记录。创建好的这个文件并不存储在我们的项目目录中(避免了意外 git push 的尴尬),甚至在 IDEA 中切换到其他项目中也可以看到你刚刚创建的这个文件,进一步说白一点,这是凌驾在项目之上的一个全局功能,如下图,切换到了其他项目中,Scratch files 依旧存在

创建一个 Scratch file 很简单,使用快捷键 ⇧⌘N ,支持关键字搜索,直接创建相应类型的文件就可以,比如这里创建一个 java 文件

默认会创建名为 Scratch.java 的文件,并写好 main 函数,就像这样:

在这里和你正常在项目中写 java 代码没什么区别,你可以使用 git status 命令来验证,结果是 Git 完全不 track 的,放心的创建临时文件就好了
其实我很常用的是创建一个 scratch.sql 文件,存放一些日常 SQL 语句,同样的创建方式,搜索 sql 默认会创建一个 scratch.sql 的文件,文件创建之后要配置数据源

配置好后,就可以尽情的书写你日常用到的 SQL 了

光标放到 SQL 位置,使用快捷键 ⌘⏎ ,选择相应的 Session (会话) 就可以 run 这条 SQL 语句了

执行后,就看到你熟悉的画面了,因为这里的画面就是 IDEA 默认的数据库管理工具,这篇 IntelliJ IDEA的数据库管理工具实在太方便了 文章中有过详细说明

创建 Scratch files 可选择的类型非常多,总有一个适合你的一些需要
Scratch buffers
和 Scratch files 类似,只不过 Scratch buffers 就是一个简单的文本文件,没有任何编码辅助功能 (说白了,可以将它理解成一个记事本),创建 Scratch buffers 没有直接的快捷键,需要用通用快捷键 ⇧⌘A ,并输入关键字(比如 buffer):

敲击回车键,就会创建好一个名为 scratch.txt 的文本文件。反复创建 Scratch buffers,你会发现,最多只允许创建 5 个:

因为这个操作不频繁,所以也就没有默认快捷键,如果你是个快捷键强迫症患者,那就在 KeyMap 处添加相应的快捷键就可以了

这里要说明一个注意事项:
如果你在 buffer1.txt 文件中记录了一些内容,当你创建第 6 次 scratch buffer 文件时,buffer1.txt 的内容就会被清空
别看 Scratch files 和 Scratch buffers 不会被 Git 跟踪,但是同样可以通过鼠标右键查看 Local History 来查看过往所有改动

减少应用切换,尽量保持专注,可以借助预览模式(ctrl+opt+v) 和 快捷键 (cmd+e)切换最近常用文件,戴上耳机,快告诉我,时速多少迈?

总结
这是一个很小的功能,但是在日常开发中真的可以带来很大的帮助:
- 跨越项目的访问
- 不被 Git 所跟踪,防止误提交
- 可以临时测试各种语言的代码
最后配合预览模式的使用,减少应用之间的切换,一切显得都很流畅
当然,保持 Code Clean,减少猜测和回忆时间,我们最好给我们创建的 Scratch files 和 Scratch buffers 更友好的文件名称
个人博客:https://dayarch.top
加我微信好友, 进群娱乐学习交流,备注「进群」
欢迎持续关注公众号:「日拱一兵」
- 前沿 Java 技术干货分享
- 高效工具汇总 | 回复「工具」
- 面试问题分析与解答
- 技术资料领取 | 回复「资料」
以读侦探小说思维轻松趣味学习 Java 技术栈相关知识,本着将复杂问题简单化,抽象问题具体化和图形化原则逐步分解技术问题,技术持续更新,请持续关注......

妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种的更多相关文章
- Intellij IDEA创建git,maven的SpringMVC项目
Intellij IDEA创建git,maven的SpringMVC项目 原文链接:http://www.cnblogs.com/blog5277/p/8906120.html 原文作者:博客园--曲 ...
- Intellij IDEA 中 使用 Git
前一段时间使用 Microsoft 的 Visual Studio Code 中使用 Git 对前端项目进行项目代码的开发提交. 使用后感觉挺好的,用的多了也觉得挺简单方便的. 现在需要在 Intel ...
- 在 IntelliJ IDEA 中使用 Git,太方便了!
git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也 因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切 ...
- [python] 创建临时文件-tempfile模块
This module generates temporary files and directories. It works on all supported platforms.In versio ...
- 修改Intellij Idea 创建maven项目默认Java编译版本
在使用Intellij Idea 创建Maven项目时,默认的Java Language是1.5,虽然可以在Project Structrue中修改,但是每次pom.xml文件有变化时,工程又会重置到 ...
- IntelliJ IDEA创建项目技巧(转)
转自:http://www.myext.cn/webkf/a_2539.html IntelliJ IDEA创建项目技巧 来源:网络 编辑:admin intellij idea教程 首先我要说 ...
- Intellij IDEA创建javaWeb以及Servlet简单实现
1.创建web工程 File --> New --> Project...
- Intellij Idea 创建Web项目入门(一)转
Intellij Idea 创建Web项目入门(一) 相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.bai ...
- createNewFile创建空文件夹与createTempFile创建临时文件夹
创建要注意的地方如下: <pre name="code" class="java"> File类的createNewFile根据抽象路径创建一个新的 ...
随机推荐
- 小白也能看懂的ArrayList的扩容机制
来,话不多说进入正题!我们下面用最简单的代码创建ArrayList并添加11个元素,并 一 一 讲解底层源码:在说之前,给大家先普及一些小知识: >ArrayList底层是用数组来实现的 > ...
- ByPass Mode(略过模式或旁路模式)
参考: 1. https://baike.baidu.com/item/%E6%97%81%E8%B7%AF%E6%A8%A1%E5%BC%8F/3120563 2. https://zhidao.b ...
- python自动化实现验证码登录过程
(自动化实现验证码登录,这里内容是入坑后,整合了几个文档的内容)|以下模块是使用时需要用到的首先:安装pillow库,它的作用是对图片进行简单的处理,在pytharm中使用pip install pi ...
- Springboot集成JUnit5优雅进行单元测试
为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余. JUnit5易扩展,包容性强,可以接入其他的测试引擎. ...
- (SpringBoot-Jpa)使用Idea数据库自动脚本Generate POJOS生成 Entity对象,
因:使用SpringBoot -jpa,需要手动配置Entity 但是如果你的表中有很多属性,或者有很多表怎么办?? 每个手动写? 还是用mybatis.写mapper??? 解决:使用idea自动工 ...
- Rust之路(2)——数据类型 上篇
[未经书面同意,严禁转载] -- 2020-10-13 -- Rust是系统编程语言.什么意思呢?其主要领域是编写贴近操作系统的软件,文件操作.办公工具.网络系统,日常用的各种客户端.浏览器.记事本. ...
- day30 Pyhton 面向对象 反射
@property # 例1 - 1 (某一个属性如果是通过计算得来的,那么计算的过程写在方法里,把这个方法伪装成属性) from math import pi # class Circle: # d ...
- ERP订单管理的操作与设计--开源软件诞生19
赤龙ERP订单模块讲解--第19篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/r ...
- xuexi
1.内存的编址方法就是内存地址与内存单元格一一对应且永久绑定.计算机的cpu只认识内存地址,不关心内存单元格的位置和内容.通过硬件的设计来达到通过内存地址找到内存单元格. 2.内存的编址是以字节为单位 ...
- ansible使用file模块管理受控机的目录与文件(ansible2.9.5)
一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...