2013-03-10 217 views
0

我已经创建了三个快捷键我的Mac上的右键菜单项,在任何应用程序中工作:调用键盘快捷键,一键

当选择文本:

大写是按Ctrl + C

使下壳按Ctrl + L

使上壳按Ctrl + U

有道理,但现在已经制定出来了我想创建一个Applescript来调用这些快捷方式,只需要输入密钥即可。

我想的是:

当选择文本:

双击CAPS调用按Ctrl + C

如果文字是UC单一的点击CAPS所调用Ctrl + L

如果文本是LC sin GLE单击CAPS调用按Ctrl + U

否则CAPS充当正常。

有没有办法做到这一点?键盘设置不允许我使用CAPS作为热键/快捷键。

回答

0

我认为这将是困难的,如果不是不可能的话。我过去曾经写过Applescripts来检测大写锁定或锁定(one such as this)但他们笨重的设置。并要求其他组件运行,然后即使我在Objective-C中使用或编写了应用程序,也意味着第三方应用程序必须运行。

最简单的解决方案是使用您的功能键。您可以使用三种逐一对每个

0

您可以使用PCKeyboardHack改变大写锁定到其它的键(如F19),然后在KeyRemap4MacBook添加这样的事情private.xml

<autogen>__DoublePressModifier__ KeyCode::F19, KeyCode::F19, KeyCode::F19, ModifierFlag::COMMAND_L</autogen>

或者用于固定键:

<autogen>__HoldingKeyToKey__ KeyCode::F19, KeyCode::F19, KeyCode::VK_NONE, KeyCode::F19, ModifierFlag::COMMAND_L, Option::NOREPEAT</autogen>

可以使用的Automator为转换为小写/大写创建服务。检查输出替换选定的文本,添加运行shell脚本操作是这样的:

export LC_CTYPE=UTF-8 
input=$(cat) 
grep -q [[:upper:]] <<< "$input" && \ 
printf %s "$input" | tr [[:upper:]] [[:lower:]] || \ 
printf %s "$input" | tr [[:lower:]] [[:upper:]] 

你可以给它在系统偏好设置的快捷方式(如⌘F19)。

Automator默认使用C语言环境,所以没有LC_CTYPE = UTF-8字符类将只包含ASCII字符。