Replace Text Edit as the default text editor
To set Sublime Text as the default handler for public.plain-text:
Mavericks (10.9) and earlier
defaults write com.apple.LaunchServices \
LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'
Yosemite (10.10) and later
Use com.apple.LaunchServices/com.apple.launchservices.secure.
defaults write com.apple.LaunchServices/com.apple.launchservices.secure \
LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'
Remember to restart to pick up the changes.
Another option is to use duti (https://github.com/moretension/duti).
Run brew install duti
, save a filetype like this as:
duti -s com.sublimetext.3 public.plain-text all
The changes should be applied immediately, so you don't have to restart like when editing com.apple.LaunchServices.plist
.
To also change the default application for executable scripts with no filename extension, add a line like this:
duti -s com.sublimetext.3 public.unix-executable all
Some files are also considered 'public.data', not 'public.plain-text', so you can do this as well:
duti -s com.sublimetext.3 public.data all
I tried grg's solution in the past and I believe it worked. However, on Yosemite and El Capitan, I ran into problems.
DonnaLea's comment in that solution clued me in on creating a solution. I added the folder path before com.apple.launchservices
additionally the file had a slightly different name com.apple.launchservices.secure
.
You can see the file/folders being modified in the following path:
/user/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist
Screenshot for reference:
Here's the command I used in terminal:
defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add \
'{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}'
Lastly, after a restart to my machine it worked as advertised.
- Right click on a .txt file in Finder.
- Choose "Get Info".
- Expand "Open with:" and choose your preferred text editor in the drop-down.
- Push the "Change All..." button below the drop-down and then confirm in the dialog that pops up with "Continue".
This works on Yosemite (OS X 10.10).
The solutions proposed here work perfectly for Sublime, but I wanted to do this for Visual Studio Code. The only difference is that you have to find the "application bundle identifier" for whatever text editor you use. I ran this command:
/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Visual\ Studio\ Code.app/Contents/Info.plist
link for reference
to get the identifier "com.microsoft.VSCode". Then I installed "duti" and ran this command:
duti -s com.microsoft.VSCode public.plain-text all
This should work for any text editor you want that is installed under /Applications. I hope this helps non-Sublime users.