Я хочу добавить в контекстное меню искателя параметр, который вызывает hg add %1
, где% 1 - это полный путь к выбранному файлу в искателе.
Конечно, я могу придумать и другие полезные случаи, которые можно добавить в контекстное меню.
Есть ли простой способ сделать это, не требующий установки стороннего программного обеспечения или кодирования на скомпилированном языке и создания бинарных плагинов?
Как создать сценарий в редакторе сценариев и поместить его в /Library/Contextual Menu Items/
?
3 ответа
Да, я знаю, что это стороннее программное обеспечение, но для более полного обзора - http: //www.abracode.com/free/cmworkshop/on_my_command.html. Еще один инструмент, который упростит написание сценария, - это http://wafflesoftware.net/thisservice/ добавление элементов в сервисное меню.
Шаги изменились для Snow Leopard / 10.6 + с момента правильного ответа @ khachik. Чтобы убедиться, что все ясно, вот шаги:
- Открыть Automator
- Создать новый
Service
- Установите два верхних раскрывающихся списка вверху на "Служба получает выбранные
files or folders
вFinder.app
" - Установите для ввода Pass значение
as arguments
- Напишите свой сценарий (об этом см. Ниже).
- Сохраните и выберите название сервиса
Окно вашего Automator должно выглядеть так: :
Теперь вы можете выбрать несколько файлов в Finder, а затем запустить службу из подменю «Службы».
Для вашего сценария, я думаю, вам нужно следующее. Это изменяет каталог каждого аргумента, а затем добавляет его. Я использую цикл for, потому что Finder позволяет вам выбирать несколько файлов в разных папках (которые могут находиться в разных репозиториях).
for f in "$@"
do
cd $(dirname $f); hg add $f
done
Если вы предположили, что все они находятся в одном репозитории, вы можете сделать это:
cd $(dirname $1); hg add $@
create service
был удален, а «Быстрые действия» или другие рабочие процессы больше не отображаются в контекстном меню (даже если они помещены в папку ~/Lib/Services
). Они отображаются только в меню «Сервисы». Любая идея, как заставить это работать снова?
Откройте Automator, создайте собственный рабочий процесс. В Library
выберите Utilites
, затем перетащите Run shell script
в рабочий процесс. Установите Pass input
на As arguments
. Напишите в своем сценарии: hg add $1
. Затем File menu->Save as a Plugin
, укажите имя, выберите plugin for Finder
, Save
. Щелкните файл правой кнопкой мыши и выберите More->Autamator-><PLUGIN_NAME>
.
Save as a Plugin...
в меню File
в Automator? Я бегаю с леопардом, и он там ... Я считаю, что должно быть что-то эквивалентное, даже если на нем нет save as a plugin
.
cd
перейти к пути к файлу% 1, не могли бы вы рассказать мне, как это получить? Благодарность!
dirname "$1"
&& сделать что-нибудь )?
Похожие вопросы
Связанные вопросы
Новые вопросы
macos
macOS (ранее известная как OS X или Mac OS X) - это операционная система для настольных ПК от Apple, установленная на компьютерах Macintosh. Используйте этот тег только в том случае, если ваш вопрос касается использования API-интерфейсов macOS или поведения, специфичного для macOS, а не потому, что вы запускаете свой код в macOS. Вопросы, связанные с использованием или устранением неполадок macOS, не относятся к теме и принадлежат сообществу «Спроси другое».
Library
выберитеUtilites
, затем перетащитеRun shell script
в рабочий процесс. УстановитеPass input
наAs arguments
. Напишите в своем сценарии:hg add $1
. Затем меню «Файл» -> «Сохранить плагин», указать имя, выбрать плагин для Finder, «Сохранить». Щелкните правой кнопкой мыши файл, выберите «Еще» -> «Autamator» ->