ThisService的'字数统计'脚本

回到十月,我的朋友杰斯珀写了一个漂亮的小工具叫做ThisService您为ThisService提供一个脚本 - AppleScript或任何Unix脚本语言,如Perl,Python或Ruby - 它会根据该脚本生成一个系统范围的服务,就在“服务”菜单中,可在任何应用程序中使用不需要Xcode或Cocoa你只需编写脚本。

当我与之相关联,我答应了几个示例脚本我迟到了几个月,但我们走了。

这个很简单,但我经常使用它它将最前面的应用程序中当前选定的文本作为输入,然后显示一个警告,显示选择中的单词数。

操作中的“字数”对话框的屏幕截图。

这是AppleScript源代码:

on process(_str)
    tell application "System Events"
        set _appname to name of first process whose frontmost is true
    end tell
    tell application _appname
        display alert "Word count: " & (count words of _str)
    end tell
end process

这就是整个剧本。

处理handler是ThisService用于传入所选文本的习惯用法,我将其分配给一个名为的变量_STR我们向系统事件询问最前面的应用程序的名称,然后执行显示警报在该应用程序的上下文中您可能想要采用快捷方式并执行此操作:

on process(_str)
    display alert "Word count: " & (count words of _str)
end process

但这不起作用,因为显示警报命令需要出现在某个可见应用程序的上下文中,否则它将在服务本身的上下文中运行,并且您永远不会看到它。

的AppleScript的数字命令不是特别聪明It won’t work as you’d like with HTML input (the tags count as words), and it considers most punctuation characters as word delimiters, which means a URL like “http://www.example.com/foo/” counts as five words但这是一个很好的近似,该服务几乎可以在任何地方工作,包括Camino和Safari中的Web浏览器表单字段。

要使用此脚本创建自己的字数统计服务,请在“脚本编辑器”中将源复制到新窗口,然后保存脚本(使用“脚本”文件格式)It doesn’t really matter what you name it or where you save it; your desktop is fine打开ThisService并将脚本拖到ThisService窗口中为您的服务命名(我使用“字数...”),确保选中“输入时的行为”,如果您愿意,还可以指定键盘快捷键。

带有Word Count Service配置的ThisService的屏幕截图。

Keyboard shortcuts for services are limited to combinations of Command and Shift; this limitation is from Mac OS X, not ThisService我选择了Command-Shift-K(ķ对于kount; Command-Shift-C is the standard shortcut for the Show Colors command)随意将快捷方式字段留空。

单击“创建服务”,ThisService将创建您的服务并将其安装在您的服务中〜/资源库/服务/夹如果您愿意,可以立即丢弃脚本文件 - ThisService在服务的包中创建脚本的副本。