我已经创建了三个键盘快捷键,可以右键单击我的Mac上可在任何应用程序中使用的菜单项:
选择文字时:
大写是 Ctrl + C
使小写字母 Ctrl + L
使大写字母 Ctrl + U
有道理,但现在已经布局了我想创建一个Applescript,只用 CAPS 键来调用这些快捷方式。
我想要的是:
选择文字时:
双击 CAPS 调用 Ctrl + C
如果文本是UC单击 CAPS 调用 Ctrl + L
如果文字是LC单击 CAPS 调用 Ctrl + U
否则 CAPS 正常运作。
有办法做到这一点吗?键盘设置不允许我使用 CAPS 作为热键/快捷键。
答案 0 :(得分:0)
我认为即使不是不可能,这也很难。我过去曾写过Applescripts来检测大写锁定或向上锁定。(one such as this)但它们设置起来很笨拙。并且要求其他组件运行,然后即使我在Objective-C中使用或编写了一个应用程序,也意味着必须运行第三方应用程序。
最简单的解决方案是使用功能键。你可以使用其中三个
答案 1 :(得分: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字符。