Estou acostumado ao iTerm2 (ou Terminal.app neste caso) no OS X. Mas quero mudar para usar o tmux (ou tela, mas o problema é semelhante aos dois aplicativos).
Então, minha ideia é ter uma única guia do iTerm com uma sessão do tmux aberta com várias guias. Para fazer a transição, tenho um recurso básico que preciso configurar no tmux: alterne a guia 'n' usando cmd + n (como Firefox, Chrome, iTerm2, etc)
No entanto, não consigo encontrar uma maneira de mapear a tecla cmd no teclado mac. Primeiro tentei implementar o cmd como uma chave de prefixo, sem sucesso. Eu tentei definir
set-option -g prefix M-a (hoping for Meta-a)
set-option -g prefix ^a (hoping for ^ to work)
mas nada funciona. Isso é possível? Eu realmente não preciso vincular o prefixo ao cmd, mas quero poder alterar as guias do tmux com cmd + n.
Obrigado
Respostas:
Você deseja chamar uma sequência de pressionamentos de tecla (primeiro
Ctrl-b
, depois n variando de 0 a 9).Sua melhor aposta é usar um utilitário de atalho de teclado, como Butler ou Keyboard Maestro, para fazer isso por você.
Usando o mordomo :
Selecione + »Item inteligente» Teclas , configure a tecla de atalho
Cmd-1
. Pressione eCtrl-B
, em seguida,1
para pressionar as teclas . Configure-o para ser válido apenas no Terminal (ou iTerm). Ele avisará que outros aplicativos podem não gostar, mas você já sabe disso.Usando o Keyboard Maestro :
Crie um novo grupo à esquerda que esteja disponível apenas no Terminal (ou iTerm).
Adicione um novo item, acionado pelo Hot Key Trigger (
Cmd-1
) e adicione dois pressionamentos de tecla às suas ações:Ctrl-B
e1
.Você também pode dar uma olhada neste tópico - mas não usa
Command
e não funcionou para mim usando o Terminal.Na documentação do tmux :
Eles não suportam uma terceira chave modificadora.
fonte
No iTerm2, você pode mapear atalhos para códigos hexadecimais que são enviados para o terminal. Vá para Preferências do iTerm2 -> Teclas. Em Teclas de atalho global, clique no + e adicione o seu atalho desejado, como o cmd + 1, que será capturado. Em seguida, selecione "Enviar código hexadecimal". Na caixa exibida, digite os códigos hexadecimais que você deseja enviar para o tmux separados por espaços. Ctrl-B é 0x02, portanto, para "Ctrl-B 1", digite "0x02 0x31". Veja aqui mais códigos hexadecimais: http://www.nthelp.com/ascii.htm
Mapeei o Cmd com h, j, k, l para mover-se entre os painéis do tmux e Cmd com% e "para criar as divisões. Provavelmente farei algo semelhante para mover entre as divisões do vim com uma tecla de controle.
fonte
Atalhos especiais podem ser feitos com o Terminal.app. Acabei de descobrir outro dia, mas isso pode ter sido possível antes do leão.
Vá em Preferências> Configurações e clique na guia "Teclado". Agora você precisa adicionar um novo atalho de teclado clicando no ícone de adição abaixo da caixa. Agora você deseja definir uma combinação de teclas que "Envia string para shell".
Exemplo: Digamos que eu queira definir M-LeftArrow para que seja mapeado
prefix-p
(janela anterior).Agora, basta digitar na
prefix-p
caixa de entrada ondeprefix
está o que você definiu para o tmux (eu uso o cntrl-a para que a caixa seja exibida\001p
). Observe que, se você cometer um erro, os caracteres excluídos serão inseridos em vez de realmente excluir caracteres; portanto, pressione o botão "Excluir um caractere" para retroceder, caso você estrague.Caracteres especiais que criei para facilitar a vida:
Você também pode modificar cntrl-qualquer coisa e mudar qualquer coisa, mas lembre-se de que elas podem interferir no seu $ EDITOR ou em outros programas; portanto, tenha cuidado com as funções especiais que podem se tornar inúteis.
Além disso, observe que não consegui descobrir como duplicar essa funcionalidade no iTerm2.
fonte
Você também pode considerar a integração nativa (mas muito experimental) oferecida pelo iTerm2 com o tmux: http://code.google.com/p/iterm2/wiki/TmuxIntegration
Dessa forma, quando você pressionar Cmd-D para dividir a tela, o iTerm2 dividirá a guia para você. Isso é ótimo, porque a divisão é nativa, então você pode arrastar a borda no meio para reajustar as larguras ou selecionar um painel clicando em. O mesmo vale para novas abas / janelas (mas os atalhos são ligeiramente diferentes - caso contrário, você não teria como adicionar abas que não sejam do tmux).
E, como o tmux, se você desconectar e reconectar, tudo será salvo para você.
Porém, existem duas advertências: * esse é um recurso muito experimental e muito esquisito para mim. * você terá que construir o tmux você mesmo (usando o arquivo em algum lugar no link acima).
-Chris
fonte
cmd+D
divide os painéis do iTerm2, não os do tmux.tmux -CC
.Você também pode olhar para este post do blog que tem explicações muito detalhadas sobre a integração tmux / iterm: http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
fonte