adicionando atalhos de teclado para o terminal OSX ou xterm

0

Existe uma maneira de adicionar um atalho de teclado para um comando de terminal no OSX. Basicamente, na maioria das vezes eu abro o aplicativo terminal no MAC, a fim de ssh em um determinado servidor foo. O que eu quero fazer é adicionar um atalho de teclado (digamos ^ k) para que em um terminal quando eu fizer isso, ele execute "ssh foo" no terminal.

Obrigado

PS: Eu acho que se há algo para o xterm no linux, então ele deve funcionar para o terminal também. Então, isso pode não ser uma pergunta específica do OSX.

PS2: Eu quero que o atalho faça o retorno de carro com o "ssh foo". Se é apenas "ssh foo", então eu posso escrever um alias em .bashrc. Meu objetivo é minimizar o número de pressionamentos de teclas que devo fazer no final do dia.

    
por I J 05.07.2011 / 07:03

6 respostas

3

Você está certo, essa não é uma questão específica do OS X. A resposta é encontrada em bash , o shell padrão no OS X (também incluído na maioria, se não em todas as distribuições do Linux).

bash fornece um comando interno chamado bind que pode ser usado para ligar uma combinação de teclas (como Alt K ) a um comando (como ssh foo ).

Abra o Terminal e digite:

bind '"\ek":"ssh foo\n"'

Isto irá ligar a combinação de teclas \ek (no Terminal tanto Alt K e Esc K ) para o comando ssh foo . O \n adiciona um retorno .

Agora pressione Alt K e ssh foo será executado (modifique ssh foo de acordo com suas necessidades).

Se você quiser que essa combinação de teclas seja carregada automaticamente ao iniciar um Terminal, crie um arquivo chamado .inputrc em sua pasta pessoal:

cd ~
touch .inputrc

e abra-o:

open -e ~/.inputrc

Você verá o TextEdit aberto. Tipo:

"\ek":"ssh foo\n"

e salve-o (ou use seu editor favorito). É isso!

Há muito mais do que o que expliquei aqui. Eu recomendo que você dê uma olhada nesta questão: link e marque a seção (em vez seca) READLINE em man bash . Observe que a seqüência de escape \M- , que em outros sistemas operacionais é mapeada para Alt , não funciona no Terminal. Você precisa usar \e para ligar Alt .

Como as seqüências de escape dependem da emulação de terminal, gostaria de compartilhar a configuração que usei para testar o comando acima:

    
por 13.11.2012 / 17:48
0

Você pode usar o Alfred App para usar teclas de atalho globais para várias coisas no OS X.

Por exemplo: Eu defini um atalho global para abrir o aplicativo Terminal e ssh'ing para um determinado servidor. Esse atalho funcionará mesmo quando o aplicativo do terminal ainda não estiver em execução.

Outra vantagem dessa solução sobre um terminal dentro de macros simples é que ele automaticamente ssh's para seu host remoto também para novas guias que você abrir.

    
por 13.11.2012 / 18:15
0

Estas soluções não são perfeitas, mas podem ajudar. Eu só tenho interface russa, então você tem que descobrir nomes de opções específicas para você mesmo.

Solução 1.

Terminal - Configurações - [Segunda guia] - Shell - Comando para executar no lançamento

Solução 2.

Terminal - Configurações - [Segunda aba] - Teclado, permitirá que você use teclas especiais para executar comandos shell (não ctrl-k, embora)

    
por 05.07.2011 / 07:43
0

Use iTerm2 . Ele tem a capacidade de fazer exatamente o que você quer: definir um perfil que executa um determinado comando ao iniciar o terminal e atribuir uma tecla de atalho a esse perfil - para que pressionar a combinação de teclas abra uma nova guia de terminal em seu servidor .

    
por 05.07.2011 / 12:33
0

Eu não acredito que haja uma maneira de criar um atalho de teclado como esse, no entanto, há algumas opções.

  1. O TextExpander permite que você digite um pequeno conjunto de letras e o tenha 'expandido' para a coisa toda. Isso pode funcionar, não tenho certeza se é suportado no Terminal, mas pode funcionar.

  2. Como na maioria das vezes você executa este comando no Terminal primeiro, você pode ir para o Terminal > Preferências > Inicialize e defina o seu comando 'Shell Opens With' para ser o que você deseja. Então, nas poucas vezes que você não quiser, simplesmente saia do ssh ... muito mais fácil do que digitando o comando.

por 05.07.2011 / 07:08
0

Estou usando o TextExpander exatamente com esse objetivo:

MacroTextExpander:

ssh-luser-p99999void.example.com%key:return%echo"some command"%key:return%

Altamente recomendado. Infelizmente não é grátis, e há outras maneiras, com certeza, mas funciona bem.

Edit: Esta conexão ssh usa um arquivo de chave, então não é necessária senha.

Edit2: Isto parece outra solução para o seu problema: Terminitor

    
por 05.07.2011 / 11:47