Alternando guias no terminal Mac com Ctrl + PageUp / PageDown

10

Recentemente, comecei a usar um Mac (executando o Lion) e há uma inconsistência que está me afetando.

No Chrome e MVim, posso alternar as guias com Ctrl+ PageUp/ PageDown. Mas, no terminal, tenho que usar Cmd+ Shift+ Left/ Right.

Gostaria de alterar o último para Ctrl+ PageUp/ PageDown, mas não consigo fazer isso.

Quando vou a Preferências do sistema → Teclado → Atalhos de teclado → Atalhos de aplicativos e adiciono um atalho à "Selecionar próxima guia" do terminal, posso configurá-lo para praticamente qualquer coisa, desde que não inclua uma tecla PageUp / PageDown.

Por que existe essa limitação e posso contorná-la?

foxcub
fonte

Respostas:

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"

-gmodifica ~/Library/Preferences/.GlobalPreferences.plist. Você precisa reabrir os aplicativos para aplicar as alterações, e os atalhos adicionados manualmente não são exibidos em Atalhos do aplicativo .

Lri
fonte
Antes de tentar, como eu desfiz isso? Existe algo como -dict-remove? (Além disso, eu adoraria saber como você encontrou esta solução.)
foxcub
1
defaults delete -g NSUserKeyEquivalents. Você também pode editar o arquivo manualmente com: f=~/Library/Preferences/.GlobalPreferences.plist; plutil -convert xml1 $f; open $f. Eu não descobri sobre isso em nenhum lugar em particular.
Lri
Eu acho que os códigos principais estão errados. Ele tenta definir tudo para ser Ctrl + PageUp. Onde posso procurar esses códigos?
foxcub
Desculpe, consertou. lri.me/chars
Lri
Aceitando esta resposta, já que é uma abordagem mais direta à minha pergunta. (Desculpe que eu não posso upvote-lo - reputação não é suficiente.)
foxcub
3

Você pode usar o iTerm, já que possui um sistema de atalhos muito mais flexível, mas inevitavelmente encontrará outro aplicativo que não funciona da maneira que você deseja.

Acho que você descobrirá que Command+ shift+ [e Command+ shift+ ]são os únicos atalhos consistentes para alternar entre guias e é melhor simplesmente mudar seus hábitos.

Jared O'Connor
fonte
Existe uma maneira de alterar o atalho do Chrome para alternar as guias para o mesmo? (Acho que sei como fazer isso com o MVim.) Estou bem em mudar meus hábitos, mas preciso de consistência.
foxcub
O Chrome já usa esses atalhos, assim como o MacVim e todos os outros aplicativos que eu usei, exceto o Adium.
Jared O'Connor
Shift-Command-Esquerda / Direita Seta também alterna as guias no Terminal. Além disso, no Mac OS X Lion 10.7, o gesto "deslizar com três dedos" alterna as guias (desde que você não tenha a preferência do sistema definida para usar o deslize com três dedos para outra coisa).
31511 Chris Page
Observe que para pessoas com (muitos) layouts de teclado que não sejam do inglês, é difícil digitar qualquer atalho que envolva teclas como [] {}. É por isso que eu pessoalmente prefiro atalhos que usam teclas que não dependem do layout do teclado. Como PageUp e PageDown.
tml 27/12/12
3

A resposta de Lri funciona (e FWIW, eu a votei), mas adota um pouco de abordagem de espingarda: cria configurações globais (em vez de configurações específicas do Terminal), e algumas das coisas que define realmente não têm efeito no Terminal - - Na verdade, não sei para que servem.

Se, como eu, você é um pouco paranóico e prefere uma abordagem mais "cirúrgica", aqui está uma versão modificada da resposta de 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"

Isso adiciona apenas duas combinações de teclas ^PageUpe ^PageDown, e as adiciona apenas ao Terminal.

Laurence Gonsalves
fonte
Alguma idéia se isso ainda deve funcionar (em El Capitan)? Infelizmente não está funcionando para mim.
Chris
@ Chris Parece que você está correto. Isso não parece mais funcionar! Por um lado, os itens de menu mudaram de nome (agora dizem "Mostrar" em vez de "Selecionar), mas, mesmo corrigindo isso, essa configuração parece não ter nenhum efeito. Na verdade, não consigo obter NSUserKeyEquivalents para trabalho para Terminal de todo em El Capitan. Ugh
Laurence Gonsalves
1

Com base nesta resposta, aqui está uma versão para o 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"
Danielle Madeley
fonte
Confirmou que isso funciona no Mojave, embora essa resposta pareça ser uma duplicata da resposta de Laurence Gonsalves . Além disso, PSA: lembre-se de reiniciar o Terminal após a execução.
RACKGNOME 6/01