2

File with no extension will be opened by TextEdit by default. For example, in terminal run open ~/.ssh/known_hosts will open TextEdit to edit known_hosts

These files are normally just text file so I don't want to use TextEdit open them (e.g. I want to use BBEdit to open them) but because they have no extension I can't find an each way to change the default app to open them in one shot. Change them one by one is not workable.

So is there any way to change them in one shot?

Replace Text Edit as the default text editor does not work for me,

First, the highest two answers there said something like duti -s com.sublimetext.4 public.plain-text all but as @Seamus said in his updated answer "The accepted answer may have been correct when it was written, but does not work for current (as of approximately Catalina vintage) systems because the UTI for a text file without a file extension is now apparently public.data". Besides I don't know how edit bbedit part, is it com.bbedit.13 (I use bbedit 13 or what else)?

Second, all the other 3rd-party apps are too old, at least 10 years old without any update.

1
  • 1
    Any unresolved aspects of this question? ICYI, I found a lot of useful information for further research from these sources: 1; 2; 3; 4
    – Seamus
    Apr 30 at 0:52

2 Answers 2

3

This is one way to do it. Note that I've done limited testing of this on my macOS Ventura system - YMMV.

One Approach:

In Terminal.app enter the following command:

% defaults write ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist LSHandlers -array-add '{LSHandlerContentType=public.data;LSHandlerRoleAll=com.barebones.bbedit;}'

You will need to re-start your machine afterwards for this to take effect.

Alternatively, you may edit the file ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist to add the following as the last <dict> element in the plist:

        .
        ..
        ...
        <dict>
            <key>LSHandlerContentType</key>
            <string>public.data</string>
            <key>LSHandlerRoleAll</key>
            <string>com.barebones.bbedit</string>
        </dict>
    </array>
</dict>
</plist>
1
0

The modern replacement for RCDefaultApp (the ancient prefs pane you're presumably referring to) is "SwiftDefaultApps"

https://github.com/Lord-Kamina/SwiftDefaultApps

For text files, you need to set the handlers for public.plain-text and public.data (the latter necessary for files with no extension, which are opened by default with TextEdit - yuck)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .