Set default file associations on MacOSX with duti and save some time
Wow, how many lost minutes or hours, every day, because I did not know this a long time ago. I am bit ashamed.
How many times, while working on your mac you get to Open a File, and the system by default opens an editor or an application that is usually set by default. I can not count how many times I have killed Xcode when trying to open a shell script, a csv file a java source file or whatever. When I was fully irritated, I was right clicking the file, and I was manually changing the Open With option. This is the end!
Step 1: Install duti from brew (give the guy a Star in github plz) :
1brew install duti
Step 2: Check the current default application for a specific file extension, e.g. .java_ files :
1duti -x java
It will prompt something like the following, indicating that Xcode is the default editor.
1Xcode.app /Applications/Xcode.app com.apple.dt.Xcode ---> this is the 2bundle ID
Step 3: Find the bundle ID of the application you want to be default editor.
1osascript -e _id of app "IntelliJ IDEA"'
It will output the following :
Step 4: Use duti to update the .java file association to IntelliJ.
1duti -s com.jetbrains.intellij .java all
Do you want to do more? For example usually I want Sublime to open many files.
Get the Bundle ID
1osascript -e _id of app "Sublime Text 2"' 2com.sublimetext.2
And set some _known file types'
1duti -s com.sublimetext.2 .sh all 2duti -s com.sublimetext.2 .md all 3duti -s com.sublimetext.2 .txt all 4duti -s com.sublimetext.2 .json all 5duti -s com.sublimetext.2 .xml all 6duti -s com.sublimetext.2 .adoc all