我想向查找程序上下文菜单添加一个选项,该选项调用hg add %1
,其中%1是查找程序中选定文件的完整路径。
当然,还有更多有用的案例可以考虑添加到上下文菜单中。
有没有简单的方法来做到这一点,不涉及以编译语言安装任何第三方软件或编码和构建二进制插件?
就像使用脚本编辑器创建脚本并将其放入/Library/Contextual Menu Items/
?将脚本添加到MacOS查找程序上下文菜单
回答
是的,我知道这是第三方软件 - 但为了更全面的概述 - http://www.abracode.com/free/cmworkshop/on_my_command.html。另一个可以使脚本编写更容易的工具是http://wafflesoftware.net/thisservice/将项目添加到服务菜单。
打开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>
。
哇,很好的解释。虽然我找不到如何保存为插件,但我唯一的选择是工作流程或应用程序。我正在运行OS 10.6.4 – Petruza 2010-11-18 14:34:32
Automator中的'File'菜单中没有'Save as a Plugin ...'项目?我正在运行豹,它在那里......我相信即使它没有“另存为插件”,也应该有相同的东西。 – khachik 2010-11-18 14:38:03
好吧,我发现现在在10.6中称为服务,但它是一样的。我设法创建它,工作正常,谢谢!现在问题是我需要'cd'到%1文件的路径,你介意告诉我如何得到这个?谢谢! – Petruza 2010-11-18 15:10:22
从@ khachik的正确答案开始,Snow Leopard/10.6 +的步骤已经发生了变化。为了确保其清晰的,这里的步骤:
- 开放的Automator
- 创建一个新的
Service
- 在顶部设置前两个下拉菜单,以“服务接收选择在
Finder.app
files or folders
” - 设置传递输入为
as arguments
- 编写您的脚本(请参阅下面的说明)。
- 保存并选择服务名称
你的Automator窗口看起来应该像这样: :
您现在可以选择在Finder中的多个文件,然后从服务子菜单中执行您服务。
对于您的脚本,我认为您需要以下内容。这将更改为每个参数的目录然后添加它。我正在使用for循环,因为Finder允许您选择不同文件夹中的多个文件(可能位于不同的存储库中)。
for f in "[email protected]"
do
cd $(dirname $f); hg add $f
done
如果你认为他们都在,你能做到这一点同一个资源库:
cd $(dirname $1); hg add [email protected]
Automator在一个环境中运行脚本,该环境设置/ etc/paths中定义的路径(也许还有别的东西),但它不会调用你的〜/ .bash_profile --->所以如果你有一些路径定义需要从Automator脚本中找到要执行的脚本/程序,您必须使用完整路径或将“source〜/ .bash_profile”(不带引号)添加为脚本的第一行 – georg 2012-12-19 21:21:25
- 1. 将批处理脚本添加到Windows 8上下文菜单
- 2. 将上下文菜单添加到UIImageView
- 3. 将Java程序添加到Ubuntu上下文菜单
- 4. 将菜单项添加到上下文菜单
- 5. 将菜单项添加到上下文菜单在VS2008 DSL
- 6. 将菜单项添加到默认的上下文菜单
- 7. 将自定义菜单项添加到Finder上下文菜单
- 8. 如何将上下文菜单添加到Finder以运行shell脚本
- 9. 将项目添加到Eclipse文本查看器上下文菜单
- 10. 添加菜单上下文菜单
- 11. 将hoverIntent添加到jquery下拉菜单脚本
- 12. 将子菜单添加到上下文菜单条的特定菜单项
- 13. 将项目添加到上下文菜单并将突出显示的文本发送到MacOS上的其他应用程序
- 14. 将程序的特定功能添加到Windows上下文菜单
- 15. 只将上下文菜单添加到Expander头文件
- 16. 添加描述性菜单项到WPF上下文菜单
- 17. 添加上下文菜单.config文件
- 18. 将多个上下文根添加到单个应用程序
- 19. 将图标添加到引导程序下拉菜单项
- 20. 将图像添加到引导程序下拉菜单
- 21. 如何将glyphicon添加到引导程序下拉菜单
- 22. 如何将标准文本框命令添加到jqgrid上下文菜单
- 23. 如何将上下文菜单添加到按钮?
- 24. 将项目添加到上下文菜单
- 25. 如何将上下文菜单项添加到工具栏?
- 26. 将项目添加到Visual Studio上下文菜单
- 27. 如何将上下文菜单添加到ListBoxItem?
- 28. 如何将条件添加到WPF上下文菜单?
- 29. 如何将动态项目添加到上下文菜单?
- 30. 将上下文菜单添加到DevExpress MVC扩展树视图
嗯......开放的Automator,创建一个自定义工作流。从'Library'选择'Utilites',然后将'Run shell script'拖放到工作流程中。设置'传入输入'为'作为参数'。写入你的脚本:'hg add $ 1'。然后在文件菜单 - >保存一个插件,指定名称,为Finder选择插件,保存。右键单击该文件,选择更多 - > Autamator->并享受。但是这里没有关于编程的任何内容...... –
khachik
2010-11-18 13:50:52
@khachik:它仍然是与开发相关的。你应该让你的评论成为答案。 – 2010-11-18 14:15:56
@菲利普好的,这实际上是一个答案... – khachik 2010-11-18 14:22:38