我正在寻找一个适用于 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