Я хочу добавить в контекстное меню средства поиска параметр, который вызывает hg add %1
, где %1 – это полный путь к выбранному файлу в средстве поиска.
Конечно, есть и другие полезные случаи, которые я могу придумать для добавления в контекстное меню.
Есть ли простой способ сделать это, не требующий установки какого-либо стороннего программного обеспечения или написания кода на скомпилированном языке и создания бинарных плагинов?
Например, создать скрипт в редакторе скриптов и поместить его в /Library/Contextual Menu Items/
?
Добавление скрипта в контекстное меню Finder MacOS
Ответы (3)
Да, я знаю, что это стороннее программное обеспечение, но для более полного обзора - http://www.abracode.com/free/cmworkshop/on_my_command.html. Другой инструмент, облегчающий написание сценария, – это http://wafflesoftware.net/thisservice/ добавление элементов в сервисное меню.
Шаги изменились для Snow Leopard/10.6+ с момента правильного ответа @khachik. Чтобы убедиться, что это ясно, вот шаги:
- Открыть автоматизатор
- Создайте новый
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 $@
Откройте 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
? Я запускаю леопард, и он там... Я считаю, что должно быть что-то эквивалентное, даже если у него нет save as a plugin
.
- person khachik; 18.11.2010
cd
указать путь к файлу %1, не могли бы вы сказать мне, как это сделать? Благодарность!
- person Petruza; 18.11.2010
dirname "$1"
&& сделай что-нибудь) ?
- person khachik; 18.11.2010
if [ -d "$1" ]; then DIR=$1 else DIR=`dirname "$1"` fi
. Затем вы можете сделать cd "$DIR"
, чтобы переодеться в него.
- person aroth; 12.03.2012
Library
выберитеUtilites
, затем перетащитеRun shell script
в рабочий процесс. УстановитеPass input
наAs arguments
. Напишите в своем сценарии:hg add $1
. Затем меню Файл->Сохранить плагин, указать имя, выбрать плагин для Finder, Сохранить. Щелкните файл правой кнопкой мыши, выберите «Дополнительно» -> «Autamator» -> «PLUGIN_NAME» и наслаждайтесь. Но здесь нет ничего о программировании... - person khachik   schedule 18.11.2010