使用 Ctrl+PageUp/PageDown 在 Mac 终端中切换选项卡

使用 Ctrl+PageUp/PageDown 在 Mac 终端中切换选项卡

我最近开始使用 Mac(运行 Lion),但有一个不一致之处令我感到困扰。

在 Chrome 和 MVim 中,我可以使用Ctrl+ PageUp/切换选项卡PageDown。但是在终端中,我必须使用Cmd+ Shift+ Left/ Right

我想将后者改为Ctrl+ PageUp/ PageDown,但似乎无法做到这一点。

当我进入系统偏好设置 → 键盘 → 键盘快捷键 → 应用程序快捷键,并向终端的“选择下一个选项卡”添加快捷方式时,我可以将其设置为几乎任何内容,只要它不包含 PageUp/PageDown 键。

为什么会有这样的限制?我可以绕过它吗?

答案1

defaults write -g NSUserKeyEquivalents -dict-add "Select Previous Tab" "^\UF72C" "Previous Tab" "^\UF72C" "Previous Workspace" "^\UF72C" "Select Next Tab" "^\UF72D" "Next Tab" "^\UF72D" "Next Workspace" "^\UF72D"

-g修改~/Library/Preferences/.GlobalPreferences.plist。您需要重新打开应用程序才能应用更改,并且手动添加的快捷方式不会显示在应用程序快捷方式

答案2

您可以使用 iTerm,因为它具有更灵活的快捷方式系统,但您不可避免地会遇到无法按您想要的方式工作的另一个应用程序。

我认为您会发现Command++和++是切换选项卡shift的唯一一致的快捷键,最好简单地改变您的习惯。[Commandshift]

答案3

Lri 的答案有效(并且 FWIW,我赞同它),但采用了一种散弹枪式的方法:它创建全局设置(而不是特定于终端的设置),并且它设置的一些内容实际上对终端根本没有影响——我实际上不知道它们是做什么用的。

如果您和我一样,有点偏执并且更喜欢采用更“外科手术”的方法,那么这里有 Lri 答案的修改版本:

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Previous Tab"    "^\UF72C"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Select Next Tab"        "^\UF72D"

这只添加了两个键绑定,^PageUp^PageDown,并将它们添加仅有的到终端。

答案4

仍然适用于 MacOS Sonoma (14.0):

defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Next Tab" "^\UF72D"
defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "Show Previous Tab" "^\UF72C"

相关内容