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


10

我最近开始使用Mac(运行Lion),并且遇到了一种不一致性。

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

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

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

为什么会有这样的限制,我可以解决吗?

Answers:


7

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。您需要重新打开应用程序以应用更改,并且手动添加的快捷方式不会显示在“ 应用程序快捷方式”中


在尝试之前,该如何撤消呢?是否有类似-dict-remove的内容?(此外,我很想知道您是如何找到此解决方案的。)
foxcub 2011年

1
defaults delete -g NSUserKeyEquivalents。您也可以使用手动编辑文件f=~/Library/Preferences/.GlobalPreferences.plist; plutil -convert xml1 $f; open $f。我没有从任何地方特别了解它。
Lri 2011年

我认为键码是错误的。它尝试将所有内容设置为Ctrl + PageUp。我在哪里可以找到这些代码?
foxcub 2011年

对不起,解决了。lri.me/chars
Lri 2011年

接受此答案,因为这是解决我的问题的更直接方法。(对不起,我不能接受它-信誉不够。)
foxcub 2011年

3

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

我认为您会发现Command+ shift+ [Command+ shift+ ]是在选项卡之间切换的唯一一致的快捷方式,最好改变您的习惯。


有没有办法将Chrome浏览器快捷方式切换为相同选项卡?(我想我知道如何为MVim做到这一点。)我可以改变自己的习惯,但是我需要保持一致。
foxcub 2011年

Chrome已经像MacVim和我使用过的所有其他应用程序一样使用了这些快捷方式,除了Adium。
贾里德·奥康纳

Shift-Command-向左/向右箭头还会切换终端中的选项卡。另外,从Mac OS X Lion 10.7开始,“三指轻扫”手势会切换选项卡(只要您未将系统偏好设置设为使用三指轻扫即可进行其他操作)。
克里斯·佩奇

请注意,对于具有(许多)非英语键盘布局的人来说,很难键入涉及诸如[] {}之类的键的快捷方式。这就是为什么我个人更喜欢使用不依赖于键盘布局的键的快捷方式。就像PageUp和PageDown。
tml 2012年

3

Lri的答案有效(我对FWIW赞成),但采取了一些shot弹的方法:它创建全局设置(而不是终端特定的设置),并且它设置的某些内容实际上对终端完全没有影响- -我真的不知道他们是干什么的。

如果像我一样,您有点偏执狂,并且希望使用更“外科”的方法,那么这里是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,并将它们添加到Terminal。


知道这是否仍然有效(在El Capitan中)?不幸的是,它对我不起作用。
克里斯

@Chris看起来您是正确的。这似乎不再起作用!一方面,菜单项已更改名称(它们现在说的是“显示”,而不是“选择”),但是即使对此设置进行更正似乎也没有任何效果,实际上我似乎无法获得NSUserKeyEquivalents在所有在埃尔卡皮坦为终端的工作。
劳伦斯·贡萨尔维斯

1

根据此答案,这是针对macOS High Sierra的版本:

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

确认此方法适用于Mojave,尽管此答案似乎与Laurence Gonsalves的答案相同。另外,PSA:请记住在运行后重新启动终端。
RACKGNOME
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.