Mac ターミナルで Ctrl+PageUp/PageDown を使ってタブを切り替える

Mac ターミナルで Ctrl+PageUp/PageDown を使ってタブを切り替える

最近 Mac (Lion を実行) を使い始めたのですが、気になる矛盾が 1 つあります。

CtrlChrome と MVim では、 + 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+[Command+ shift+だけであることが分かると思いますので、単に習慣を変えたほうがよいでしょう。]

答え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"

これにより、2つのキーバインド^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"

関連情報