0

我在我的 Mac 上创建了三个键盘快捷键,可以在任何应用程序中使用右键单击菜单项:

选择文本时:

大写是Ctrl+C

使小写是Ctrl+L

使大写是Ctrl+U

有道理,但现在已经布置好了,我想创建一个 Applescript 来只用CAPS键调用这些快捷方式。

我想要的是:

选择文本时:

双击CAPS调用Ctrl+C

如果文本是 UC 单击CAPS调用Ctrl+L

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

否则CAPS正常工作。

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

4

2 回答 2

0

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

最简单的解决方案是使用您的功能键。您可以使用其中三个,每个一个

于 2013-03-10T15:39:16.400 回答
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 字符。

于 2013-03-11T06:45:35.963 回答