Как навсегда поместить TextEdit в список меню «Открыть с помощью…»?

25

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

Есть ли способ навсегда поместить TextEdit.app в список меню Открыть с помощью ... независимо от того, какой тип файла я смотрю?

Конечно, эта процедура будет полезна для любого текстового редактора, который вы выберете, если TextEdit не ваша чашка чая.

DrummerB
источник
1
У меня тоже есть это желание. В настоящее время я храню TextEdit в своей док-станции, поэтому он всегда доступен для перетаскивания файла.
GEdgar

Ответы:

19

Единственный способ сделать это со всеми типами файлов - это создать службу в Automator, которая на самом деле должна упростить вам задачу.

  1. Откройте Automator и выберите «Сервис».
  2. В раскрывающемся списке «Служба получает выбранное ...» измените его на «Получать выбранные файлы и папки в любом приложении ».
  3. Выберите «Утилиты» в меню библиотеки на левой панели и дважды щелкните «Run Shell Script».
  4. Измените раскрывающийся список «Пропустить ввод» на «в качестве аргументов»
  5. Удалите скрипт по умолчанию и замените его следующим:

    if [ -f "$1" ] ; then
        open -a "TextEdit" "$1" ;
    fi
    

Сохраните этот файл как хотите, чтобы он отображался в контекстном меню, например, «Открыть с помощью TextEdit», и все готово, теперь у вас будет возможность открыть любой файл с редактированием текста.

Это не будет открыто через меню, это будет отдельный пункт в контекстном меню, сгруппированный с любыми другими сервисами, которые вы используете.

Напомним, что если вы разрабатываете на Mac, вам следует подумать об использовании лучшего текстового редактора, такого как TextMate, TextWrangler или Sublime Text, некоторые из них даже добавляют сервис, позволяющий вам сэкономить на выполнении всего вышеперечисленного.

JamiePatt
источник
1
+1, и да, TextEdit не является настоящим редактором открытого текста - он может это сделать, но у него нет никаких функций, чтобы упростить его, и он предпочел бы редактировать форматированный текст.
NReilingh
Прекрасный! Было бы еще лучше, если бы мы могли ограничить это всеми файлами в текстовом формате (включая исходный код и тому подобное)
Уильям Джокуш
1
есть ли способ заставить его появиться в главном меню, вместо того, чтобы искать в сервисном меню? Или хотя бы спрятать неиспользуемые пункты в сервисном меню ...
pqnet
@pqnet - ты нашел, как это сделать? Я тоже это ищу: apple.stackexchange.com/questions/206068/…
Крис Сноу
7

Вы можете добавить поддерживаемые типы файлов, отредактировав Info.plist , но я не знаю, как это сделать для всех типов файлов. Добавление UTI, таких как public.data или public.item, в Info.plist или com.apple.LaunchServices.plist, похоже, не работает.

Я использовал duti, чтобы сделать TextMate приложением по умолчанию для разных типов простого текста:

# plain text files without an extension
com.macromates.TextMate.preview public.plain-text all

# executable scripts
com.macromates.TextMate.preview public.unix-executable all

com.macromates.TextMate.preview .as all
com.macromates.TextMate.preview .ass all
com.macromates.TextMate.preview .bash all
com.macromates.TextMate.preview .bom all
com.macromates.TextMate.preview .c all
com.macromates.TextMate.preview .cfm all
com.macromates.TextMate.preview .cfml all
com.macromates.TextMate.preview .class all
com.macromates.TextMate.preview .coffee all
com.macromates.TextMate.preview .conf all
com.macromates.TextMate.preview .cpp all
com.macromates.TextMate.preview .css all
com.macromates.TextMate.preview .csv all
com.macromates.TextMate.preview .ctp all
com.macromates.TextMate.preview .dat all
com.macromates.TextMate.preview .data all
com.macromates.TextMate.preview .doc all
com.macromates.TextMate.preview .erb all
com.macromates.TextMate.preview .fields all
com.macromates.TextMate.preview .gemspec all
com.macromates.TextMate.preview .h all
com.macromates.TextMate.preview .haml all
com.macromates.TextMate.preview .hotkey all
com.macromates.TextMate.preview .hpp all
com.macromates.TextMate.preview .idx all
com.macromates.TextMate.preview .java all
com.macromates.TextMate.preview .js all
com.macromates.TextMate.preview .json all
com.macromates.TextMate.preview .keylayout all
com.macromates.TextMate.preview .kmlibrary all
com.macromates.TextMate.preview .less all
com.macromates.TextMate.preview .log all
com.macromates.TextMate.preview .m all
com.macromates.TextMate.preview .manifest all
com.macromates.TextMate.preview .md all
com.macromates.TextMate.preview .mm all
com.macromates.TextMate.preview .msass all
com.macromates.TextMate.preview .opml all
com.macromates.TextMate.preview .pg all
com.macromates.TextMate.preview .php all
com.macromates.TextMate.preview .pl all
com.macromates.TextMate.preview .plist all
com.macromates.TextMate.preview .plist all
com.macromates.TextMate.preview .py all
com.macromates.TextMate.preview .rb all
com.macromates.TextMate.preview .rd all
com.macromates.TextMate.preview .rdoc all
com.macromates.TextMate.preview .readme all
com.macromates.TextMate.preview .rhtml all
com.macromates.TextMate.preview .rst all
com.macromates.TextMate.preview .sb all
com.macromates.TextMate.preview .scss all
com.macromates.TextMate.preview .sh all
com.macromates.TextMate.preview .srt all
com.macromates.TextMate.preview .strings all
com.macromates.TextMate.preview .sub all
com.macromates.TextMate.preview .tex all
com.macromates.TextMate.preview .tsv all
com.macromates.TextMate.preview .utf all
com.macromates.TextMate.preview .xml all
com.macromates.TextMate.preview .yaml all

duti не поддерживает просто добавление приложений для открытия с меню, но не по умолчанию.

LRI
источник
2

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

  1. Проверьте шестнадцатеричный код, запустив xattr -p com.apple.LaunchServices.OpenWith <file>, где 'file' - это файл, который вы вручную открыли с помощью TextEdit.

  2. Откройте Automator и выберите тип «Сервис» для вашего документа.

  3. В раскрывающемся списке «Служба получает выбранные» выберите «файлы или папки».

  4. Добавьте шаг «Утилиты -> Установить значение переменной». Вы должны увидеть переменную с именем «Storage».

  5. Добавьте шаг «Утилиты -> Запуск сценария оболочки». В раскрывающемся списке «пройти ввод» выберите «в качестве аргументов». Замените содержимое текстового поля на следующее, убедившись, что шестнадцатеричный код совпадает с тем, что вы получили на первом шаге.

    if [ -f "$1" ] ; then
        xattr -wx com.apple.LaunchServices.OpenWith "62 70 6C 69 73 74 30 30 D3 01 02 03 04 05 06 57 76 65 72 73 69 6F 6E 54 70 61 74 68 5F 10 10 62 75 6E 64 6C 65 69 64 65 6E 74 69 66 69 65 72 10 00 5F 10 1A 2F 41 70 70 6C 69 63 61 74 69 6F 6E 73 2F 54 65 78 74 45 64 69 74 2E 61 70 70 5F 10 12 63 6F 6D 2E 61 70 70 6C 65 2E 54 65 78 74 45 64 69 74 08 0F 17 1C 2F 31 4E 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63" "$1";
        xattr -d com.apple.quarantine "$1" || true;
    fi
    
  6. Добавьте шаг «Утилиты -> Получить значение переменной». Вы должны увидеть переменную с именем «Storage».

  7. Добавьте шаг «Файлы и папки -> Открыть элементы Finder». В раскрывающемся списке «Открыть с помощью» выберите «TextEdit».

  8. Сохранить с запоминающимся именем, например TextEditify.

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

Объяснение сценария:

Первая xattrкоманда добавляет атрибут, обычно сохраняемый, если вы выбираете «всегда открывать с помощью» вручную.

Вторая xattrкоманда гарантирует, что это работает с файлами, загруженными из Интернета.

yodie
источник
1

Вы можете создать рабочий процесс меню «Сервис», как описывает влияние. Однако вы можете просто использовать опцию «Открыть элементы Finder» и добавить TextEdit в качестве приложения.

Существует хороший пост об этом здесь , что объясняет , как создать рабочий процесс более подробно.

user48595
источник
1
Ответы на разные вопросы должны быть чем-то большим, чем просто ссылка. Это нормально, чтобы включить ссылку, но, пожалуйста, суммируйте или извлеките ее в ответе. Идея состоит в том, чтобы сделать ответ самостоятельно.
nohillside
0
  1. Откройте приложение Automator

  2. щелчок New Document

  3. выберите Service

    введите описание изображения здесь

  4. Измените на Services receives selected"файлы или папки"

    введите описание изображения здесь

  5. Найдите Action«Open Finder Items» и перетащите его в область рабочего процесса.

    GIF

  6. Измените Open with:на «TextEdit» или любое другое приложение (я предпочитаю «Код Visual Studio»)

  7. Сохраните ваш сервис чем-то логичным, например «Открыть с помощью TextEdit», если вы выбрали TextEdit.

Теперь вы можете щелкнуть правой кнопкой мыши любой элемент Finder и выбрать Services-> Open with TextEdit!

Спасибо пользователю 48595 и ссылке, размещенной в его ответе: http://www.mactricksandtips.com/2013/05/add-open-with-textedit-or-any-other-app-to-right-click-menu-item .html

spacetyper
источник
-3

Просто используйте опцию "-e", чтобы открыть с помощью TextEdit: откройте -e yourfile.whither, и он откроет его в TextEdit.

Psy
источник