taw*_*taw 10 command-line terminal.app macos
F9-F12 被 Mac OS X 使用,我不想摆脱它们,我只是希望能够偶尔将 F9-F12 发送到终端内部的程序(主要是 F9/F10)。
一些程序如mc支持序列 Escape 9 作为 F9 等的同义词,但它并不通用。
它有什么办法吗?
您可以运行 AppleScript(例如,通过使用Run AppleScript操作将其包装在 Automator中的Service中,在Terminal 中没有输入)执行以下操作:
tell application "System Events"
tell expose preferences to set the properties of the all windows shortcut to {function key:F1}
key code 101 # press F9
tell expose preferences to set the properties of the all windows shortcut to {function key:F9}
end tell
Run Code Online (Sandbox Code Playgroud)
这将临时为绑定到 F9 的内容分配一个不同的快捷方式,按 F9,然后恢复设置。其他 Expose 首选项的设置名称如下:
all windows shortcut
application windows shortcut
show desktop shortcut
dashboard shortcut
Run Code Online (Sandbox Code Playgroud)
F9 到 F12 的关键代码如下:
F9 101
F10 109
F11 103
F12 111
Run Code Online (Sandbox Code Playgroud)
您可以在“系统偏好设置”»“键盘”»“键盘快捷键”»“服务”中为服务分配键盘快捷键。您将需要学习另一个快捷键(例如Command-F9),但至少您可以按一个键来启动操作。有关使用 F 键的快捷方式,请参阅本答案的最后一段。
您也可以配置像Butler这样的热键/宏应用程序,以cat -v在您停用快捷方式时按下其中一个 F 键时获得的转义序列。
$ cat -v
^[[20~^[[21~^[[23~^[[24~
Run Code Online (Sandbox Code Playgroud)
这些按顺序是 F9 到 F12。
在 Butler 中,F9 看起来是这样的:

我按了Ctrl-[, [, 2, 0,~以显示该序列。在我的键盘布局上,~is Shift-backtick,这就是Shift修饰符可见的原因。无论如何都有效。
配置一个快捷方式,您可以开始按它来获取转义序列:

在 中工作mc,我现在不记得另一个带有 F 键的 CLI 程序。但这不是mc特定的转义序列,因此它可能适用于其他人。
可替代地,许多命令行应用程序了解Esc, 1(序列)是指F1,通过对Esc, 0含义F10。
我要补充一点,如果你使用笔记本电脑,你实际上并没有使用 F9-F12,而是按“下一首歌曲”、“音频静音”、“音量调低”(来自最近的 macbookpro 的示例)。要实际按 F9-F12,请在使用同一键时按住“Fn”。
\n\n在桌面上,如果您有像 Expos\xc3\xa9、Spaces 等映射到实际 F9-F12 键盘键的内容,我发现将这些功能与其他鼠标按钮关联起来很有用(例如,我使用 \' Mighty Mouse 的横向按钮对激活 Expos\xc3\xa9)或屏幕边缘(例如,我在左上角有“屏幕待机”) - 但这实际上是一个主观问题。
\n