比如在IntelliJ项目中有一个.md的文件,我希望双击后使用系统默认关联的应用程序来打开,比如Typora,在百度上找答案几乎是同一种方式:链接在此,此种方式使用起来比较麻烦,先要右击文件,再选择“External Tool”菜单,然后再选择我们设置好的程序。太麻烦了,如果项目中有word文档,双击直接就用微软的Word程序打开了,说明是可以做到双击就使用系统默认关联应用打开的,后来在IntelliJ官网找到了答案,连接在此,刚开始看不懂,因为使用了Google翻译成了中文,看中文是真的不能理解它的意思,后来看英文原文才搞懂了它的意思。
其实这个事情我很久之前就搞过一次,那时是设置打开UML文件,由于当时没做笔记,现在忘记了,又需要百度花了好多时间,所以这次一定要记录一下了,不然以后有这种需求了还得浪费时间百度,还不一定找得到。
IntelliJ官方指南说:
- 如果文件类型已经在IntelliJ中注册,则文件默认在IntelliJ IDEA的编辑器中打开。
- 但是,如果文件类型是注册在 “Files opened in associated applications” 分类下的话,它将在系统关联的应用程序中打开,默认情况下在这个分类中已经设置了许多文件类型,例如:.doc、.chm、.pdf 等。 注:“Files opened in associated applications” 翻译过来意思为:“在关联的应用程序中打开文件”。
现在的关键点来了,注册文件类型是在哪里注册呢?依次点开:File > Settings > Editor > File Types,对话框如下:
File Types(文件类型)对话框中功能的解释:
- Recognized file types:翻译过来就是“识别的文件类型”,就是说这里面列出来的文件类型就是IntelliJ能识别的,双击就会在IntelliJ的编辑器中打开。注意:这个列表的内容只是文件类型的分类,比如HTML文件类型,它的扩展名是有多种的,比如:.htm、.html、*.shtml等,这些具体的扩展名由Registered patterns来指定,这些扩展名都属于HTML分类。
- 在Recongized file types中都是文件类型的分类,有一个特殊的类型分类 “Files opened in associated applications”,只要是注册在这个分类下的扩展名的文件,双击对应的文件时就会使用系统关联的默认应用程序来打开,而不是用IntelliJ IDEA来打开。
- Registered patterns:可以理解为“已注册的扩展名”,具体的扩展名就是在这个地方设置的。
OK,解释的应该很明白了,接下来是实战:
- 假设将来的某一天,又多了一种HTML的扩展名,此时你发现在IntelliJ中双击并没有使用IntelliJ来打开,而你希望使用IntelliJ来打开,则我们在上面的对话框中找到“Recognized file types",找到它里面的HTML分类,点击一下,然后在Registered patterns下面就会显示出所有的HTML的扩展名,如果你发现没有你需要的扩展html的扩展名,则点击Registered patterns右边的加号来添加扩展名。OK,设置完之后你再双击文件就会用IntelliJ来打开文件了。
- 我们也可以自己创建分类,点击Recognized file types右边的加号即可创建自定义的分类了,一般情况下我们不需要去创建分类,使用IntelliJ已经存在的分类即可,假设一个文件IntelliJ就没法处理,比如mp3文件,你注册进来也没用啊,假设你的文件类型就是纯文本类型,但是不是经典的txt扩展名,则我们可以找到Text分类,把我们的特殊的文本文件的扩展名注册进来即可(这里默认已经有很多的文本类型扩展名了,比如:.log、.txt、*.bat
- 如果我们希望一个指定扩展名的文件使用系统关联的默认应用程序来打开时,则我们把这个扩展名注册到”Files opened in associated applications“这个分类下面即可,比如我工作时用到了UML类图,它是用StarUML软件创建的,文件的扩展名为*.mdj,我们希望双击IntelliJ项目中的*.mdj文件时使用StarUML软件来打开,设置如下:
需要注意的事,使用系统关联的默认程序打开文件时,首先你的系统已经有默认的程序关联此文件的扩展名,否则双击时应该会弹出一个对话框让你来选择使用什么程序软件打开。比如,word文档可以使用微软的Word软件打开,也可以使用金山公司的WPS软件打开,如果系统默认使用WPS打开.doc文件的话,则双击.doc就会用WPS来打开,而不是用Word打开。