Выберите приложение по умолчанию для открытия файлов без расширения?

27

Можно ли настроить приложение по умолчанию для открытия файлов без расширения? Я не имею в виду файлы со скрытыми расширениями, но те , полностью отсутствует расширение - например README, CHANGELOG, mboxи т.д.

«Открыть с помощью» => «Изменить все» для этих файлов не работает, возвращая ошибку, показанную ниже:

Открыть с помощью / Изменить все - Сбой

В идеале я хотел бы, чтобы система пыталась открыть все такие файлы в TextMate. Я знаю, что могу перетаскивать файлы на значки Dock, чтобы открывать их в определенных приложениях, но я ищу более простое решение, чем это (тем более, что у меня есть автоматическое скрытие Dock, что делает его гораздо более громоздким).

Я знаком с плагином QLStephen QuickLook, который может включать QuickLook для некоторых из этих файлов, но я бы предпочел решение с возможностью выбора / копирования / редактирования.

Остин
источник

Ответы:

12

Вы можете добавить приложение по умолчанию для public.plain-text в ~ / Library / Preferences / com.apple.LaunchServices.plist.

defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.apple.textedit;}' '{LSHandlerContentType=public.unix-executable;LSHandlerRoleAll=com.apple.textedit;}'

Перезапустите, чтобы применить изменения (выхода из системы и повторного входа недостаточно).

Я добавил это в файл конфигурации duti :

com.apple.textedit public.plain-text all
com.macromates.textmate public.unix-executable all
LRI
источник
5
Это выглядит неплохо, больше подробностей о том, что здесь происходит на высшем уровне, было бы неплохо. Введение, что происходит в шаге 1 и т. Д.
MrDaniel
4

Вы можете сделать это с помощью Magic Launch. После установки вы можете создать правила для запуска на основе различных критериев. Вам нужно создать правило для текстовых приложений, где расширение пусто. Вы можете настроить более сложную логику, если вам это нужно.

http://michelf.com/software/magic-launch/

barryj
источник
Вы правы - мне пришлось создать собственное правило для обработки файлов с пустыми расширениями ... но, похоже, это сработало - спасибо! Единственным недостатком является то, что это 13 долларов. У меня нет проблем с оплатой хороших приложений, но это немного круто, учитывая, что я ищу только эту функцию.
Остин
0

Взгляните на RCDefaultApp (бесплатное программное обеспечение).

RCDefaultApp - это панель предпочтений Mac OS X 10.2 или более поздней версии, которая позволяет пользователю устанавливать приложение по умолчанию, используемое для различных схем URL, расширений файлов, типов файлов, типов MIME и универсальных идентификаторов типов (или UTI; только для MacOS 10.4).

Хэгелин
источник
1
Мне нравится, что это бесплатно, но нет способа установить приложение по умолчанию для файлов без расширения. Использование типов MIME может несколько приблизить это, но затем оно меняет приложение по умолчанию для всех текстовых файлов, а не только для тех, которые не имеют расширения. В любом случае, спасибо за предложение - возможно, оно поможет кому-то еще.
Остин
0

Немного опоздал, вопрос «Как избежать открытия файлов без терминала в терминале» устарел. Тем не мение:

Вышеуказанные решения включают изменение существующих правил, что может иметь нежелательные побочные эффекты. Я считаю, что проще всего использовать существующие правила для файлов без типов и изменения прав доступа к файлам, чтобы получить желаемый результат.

В частности: Отключите исполняемый бит в файле, потому что это то, что говорит файловой службе открываться с терминалом с «chmod -x filename», где filename - это имя файла.

Это может быть автоматизировано до некоторой степени (с осторожностью): в моем случае у меня много файлов README на машине. Я могу использовать «найти», чтобы найти все файлы «README». А затем используйте «awk» для создания команды для удаления исполняемого бита на всех из них следующим образом:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }'

введите это в терминал, если вы хотите проверить, какие файлы будут изменены: вывод будет состоять из списка для каждого найденного файла README, который выглядит примерно так:

chmod -x //Users/jimpsmith/things/README

И чтобы изменить все эти разрешения, выполните все эти строки, назначив bash следующим образом:

find /$HOME -iname 'README' | awk '{ print "chmod -x " $0 }' | bash

Просто остерегайтесь слишком широкого использования подстановочных знаков и обнаружение, что вы случайно удалили исполняемый бит из некоторых исполняемых файлов, которые ошибочно совпадают.


Более простой способ - просто бежать

find /$HOME -iname 'README' -exec chmod -x '{}' \;`

или (чтобы увидеть, что произойдет)

find /$HOME -iname 'README' -exec echo chmod -x '{}' \;`
JamesConnolly
источник
1
Я почему-то не понимаю, как это решает проблему, изложенную в вопросе. README, ChangeLog и т. Д. Обычно не имеют установленного бита x для начала. Проблема в том, что OS X использует суффиксы для идентификации приложения, с которым открывается файл, и эти файлы не имеют суффикса.
холме