Mac 应用程序编译和引用键盘快捷键

Mac 应用程序编译和引用键盘快捷键

我正在寻找一个适用于 Mac 的应用程序,它可以允许用户为多个应用程序编译键盘快捷键和选项卡触发器,并即时引用它们。

我是一名开发人员,我使用的许多应用程序都有许多有用的键盘快捷键或选项卡触发器,包括 OS X 本身。问题是,虽然我正在学习所有这些功能,但没有方便的方法来引用它们。当然,有网页上有快捷键列表,或者应用程序本身有列表,还有可以下载并保持打开的 PDF,但所有这些解决方案都没有简化工作流程。

我想象一个位于菜单栏中的应用程序,人们可以输入各种键盘快捷键等,并可以按应用程序或关键字等进行组织和搜索。这样,当你工作时,你需要记住一个快捷方式,你所要做的就是单击菜单栏并搜索,而不是打开并搜索 pdf 或诸如此类的东西。

有什么建议吗?我想我可以自己创造...但是你知道...

答案1

我不知道你是否见过KeyCue,但当您按住命令时,它基本上会在最前面的应用程序中显示快捷方式列表。

我还编写了一个 AppleScript,用于保存菜单项及其快捷方式的文本文件。不过我自己从来没真正需要过它——从菜单栏查找快捷方式更方便。

set procs to {"TextEdit"}
repeat with proc in procs
    activate application proc
    tell application "System Events" to tell process proc
        set out to ""
        repeat with v in menu bar items 2 thru -1 of menu bar 1
            set out to out & name of v & linefeed
            repeat with w in menu items of menu 1 of v
                try
                    set nme to name of w
                    set sc to my getshortcut(proc, w)
                    if nme is not missing value and sc is not missing value then
                        set out to out & "  " & sc & "  " & nme & linefeed
                    end if
                end try
                try
                    set mi to menu items of menu 1 of w
                    set subout to "  " & name of w & linefeed
                    set appendsubout to false
                    repeat with x in mi
                        try
                            set nme to name of x
                            set sc to my getshortcut(proc, x)
                            if nme is not missing value and sc is not missing value then
                                set subout to subout & "  " & "  " & sc & "  " & nme & linefeed
                                set appendsubout to true
                            end if
                        end try
                    end repeat
                    if appendsubout then set out to out & subout
                end try
            end repeat
        end repeat
    end tell
    try
        set vers to " " & version of application proc
    on error
        set vers to ""
    end try
    do shell script "echo " & quoted form of out & " > ~/Desktop/" & quoted form of (proc & vers & ".txt")
end repeat

on getshortcut(proc, x)
    set text item delimiters to space
    set menuglyphs to text items of "2 ⇥ 3 ⇤ 4 ⌤ 9 ␣ 10 ⌦ 11 ↩ 16 ↓ 23 ⌫ 24 ← 25 ↑ 26 → 27 ⎋ 28 ⌧ 98 ⇞ 99 ⇪ 100 ← 101 → 102 ↖ 104 ↑ 105 ↘ 106 ↓ 107 ⇟ 111 F1 112 F2 113 F3 114 F4 115 F5 116 F6 117 F7 118 F8 119 F9 120 F10 121 F11 122 F12 135 F13 136 F14 137 F15 140 ⏏ 143 F16 144 F17 145 F18 146 F19"
    set cmdmods to text items of "⌘ ⇧⌘ ⌥⌘ ⌥⇧⌘ ⌃⌘ ⌃⇧⌘ ⌃⌥⌘ ⌃⌥⇧⌘ - ⇧ ⌥ ⌥⇧ ⌃ ⌃⇧ ⌃⌥ ⌃⌥⇧"
    tell application "System Events" to tell process proc
        set c to ""
        try
            set n to value of attribute "AXMenuItemCmdModifiers" of x
            set modifier to item (n + 1) of cmdmods
            if modifier is "-" then set modifier to ""
            try
                set c to (value of attribute "AXMenuItemCmdChar" of x)
                c as text
                return modifier & c
            on error
                set glyph to (value of attribute "AXMenuItemCmdGlyph" of x) as text
                repeat with i from 1 to (count menuglyphs)
                    if item i of menuglyphs is glyph then
                        return modifier & item (i + 1) of menuglyphs
                    end if
                end repeat
            end try
        end try
    end tell
    return missing value
end getshortcut

相关内容