多数人对于 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 更友好的文件名称

DD自营的沪牌代拍业务,无中间商赚差价,点击直达

往期推荐

Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回

isEmpty 和 isBlank 区别?

国内首个比特币勒索病毒制作者落网,但过程有点好笑...

重大BUG:你的淘宝双十一订单可能多付钱了!

TIOBE公布11月榜单:Python势不可挡,超越Java !

Loki 2.0.0 发布,ELK之外的优秀日志聚合系统!

推荐本文作者的原创公众号

长安下方图片,识别二维码关注

深度内容

推荐加入

最近热门内容回顾   #技术人系列

妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种相关推荐

  1. idea git 在文件上点了revert怎么复原_在 IntelliJ IDEA 中使用 Git,太方便了

    作者:J'KYO 来源:https://www.cnblogs.com/pejsidney/p/9199115.html 1.git简介 git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库 ...

  2. 创建一个 Git 版本库

    创建一个 Git 版本库 $ cd project/$ git init # 创建 .git 目录 ( 1.4.4.4 版本之后用这个命令 )$ git add . # 将那些未被跟踪的文件加入版本库 ...

  3. eclipse查看git地址_在 IntelliJ IDEA 中使用 Git,太方便了

    作者:J'KYO 1.git简介 git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都是本地执行,所以在 ...

  4. IntelliJ IDEA中使用git

    IntelliJ IDEA中使用git 在Idea中配置git 安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动 ...

  5. 如何创建远程 Git 分支?

    问: 我创建了一个本地分支.如何将其推送到远程服务器? 更新:我写了一个simpler answer for Git 2.0 here. 答1: 一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的 ...

  6. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用

    swift通知栏推送 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用 (How to create an iOS crypt ...

  7. idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目

    关于maven的安装和配置参考: Maven 3.6.1的配置及验证 关于IntelliJ IDEA安装配置参考: IntelliJ IDEA的安装和配置 1.打开IntelliJ IDEA,选择&q ...

  8. 【Kotlin】IntelliJ IDEA 创建 Kotlin 项目

    文章目录 IntelliJ IDEA 创建 Kotlin 项目 IntelliJ IDEA 创建 Kotlin 项目 IntelliJ IDEA 环境创建 Kotlin 项目流程 : 1 . 创建工程 ...

  9. BC30138: 无法在路径“C:\WINDOWS\TEMP\”中创建临时文件: 拒绝访问。

    今天一客户打电话说页面无法加载,我过去看了下出现下面的问题.这样的问题也是程序在运行时常遇见的,所以在解决后就给贴出来了~~ 问题:BC30138: 无法在路径"C:\WINDOWS\TEM ...

最新文章

  1. pkg mysql 在macOS 上的管理
  2. Samtools(CentOS Linux)安装及常用命令详解
  3. centos7 ntp设置 时间同步
  4. JSP 第一天:提交表单--获取表单中的数据值
  5. openssl passwd之openssl命令详解
  6. vc判断文件夹是否存在
  7. cambridge phd in engineering
  8. 【CyberSecurityLearning 53】信息收集
  9. Ceph OSD操作 命令详解
  10. 腾讯---生成格雷码
  11. 常用的几种编程语言的介绍
  12. “弱肉强食,月半者为王” | OpenDILab推出多智能体博弈环境Go-Bigger
  13. (67)Vue-cli 项目搭建
  14. 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)...
  15. [UE4]OnComponentBeginOverlap.AddDynamic 的编译错误
  16. 可交互绘图——鼠标移到点的上方会显示该点的标签[jupyter notebook]
  17. sqlite关于时间的处理
  18. linux下oracle安装教程
  19. Android开发:申请小米开发者账号步骤
  20. (BISM)FTP搜索引擎BLOG开通了,专门交流搜索引擎技术

热门文章

  1. 软件测试面试问答大全(2)
  2. linux 初始化工作进程 systemd简介
  3. redis c客户端 hiredis
  4. linux中man 1 2 3
  5. UNIX进程的创建,进程链和进程扇
  6. java 线程组和线程_Java多线程 线程组原理及实例详解
  7. php 昨天开始时间_php日期处理显示:昨天、今天、本周、上一月等时间结点数据...
  8. mysql查询时间between and_Mysql中用between...and...查询日期时注意事项
  9. java 通配符 泛型_java中泛型之类型通配符(?)
  10. 怎么绘制机械孔_机械图纸中常见的符号及意义,机械人必备!