Eu sou um novo usuário do GNU Screen. Uso o Bash há muito tempo e quero experimentar o GNU Screen.
Como você sabe, o GNU Screen usa 'Ca' (Control-A) como caractere de comando. O problema é que isso interfere no recurso de edição de linha no Bash (e no GNU Readline), porque o Control-A no Bash será movido para o início da linha. "
Sei que posso definir o caractere de comando para outra sequência de teclas , como "^ Q" ou "` `" (Backtick), mas tenho problemas para encontrar outra sequência de teclas que ainda não esteja em uso (^ Q é usado pelo terminal , backtick é usado ao escrever scripts de shell). Parece que o caractere de comando pode ter apenas um ou dois caracteres. Posso definir o caractere de controle GNU Screen para algo como "Control-Shift-A"?
(Ainda não posso usar mais de um hiperlink, não posso vincular à documentação do Bash)
fonte
screen
em outros sistemas, é melhor seguir as combinações de teclas padrão ou pelo menos aprendê-las primeiro.^A a
Por padrão, enviará a^A
combinação de teclas usual . É um pouco inconveniente se você usa muito esse combo; Eu normalmente uso aHOME
chave por causa disso. Mas isso também nem sempre funciona.Respostas:
O problema com Control- Shift- Aé que a maioria dos programas de emulação de terminal não envia para ele um código diferente daquele enviado por Control- A, portanto, não há como a tela dizer a diferença.
Você poderá usar o Cq se
stty -ixon
desativar o "controle de fluxo de software" no tty. Eu costumo fazer isso para poder usar Cs para pesquisar na linha de comando.Você pode considerar C- ^, pois parece geralmente não ter ligação. É Control- Shift- 6nos layouts de teclado dos EUA, mas pode ser difícil digitar em outros layouts.
A maioria das pessoas nunca usa o caractere de controle tty C- \ para enviar SIGQUIT. Para usá-lo, desative a funcionalidade tty com with
stty quit undef
e ligue-a como sua chave de prefixo. No entanto, isso é um pouco arriscado, pois se você pressionar C- \ em um tty onde a chave de encerramento não foi desativada com stty , você poderá interromper o processo de primeiro plano em vez de ativar a tela .Eu mudei para o tmux há um tempo atrás. Seu padrão é Cb porque foi desenvolvido na tela e não interferiu no padrão da tela . Descobri que Cb funciona razoavelmente bem para mim (normalmente uso as teclas de seta para o movimento de um único caractere na linha de comando do shell - apesar de usar Mb e Mf para mover por palavras).
Aliás, o autor do tmux usa o Ca em suas sessões principais e sempre digita o Ca duas vezes (seja em uma sessão do tmux ou não). Se você está disposto a adotar esse hábito, parece um compromisso decente, já que o segundo Ca deve ser um não operacional na maioria dos contextos de edição do tipo Emacs. Não funcionaria se você costuma usar programas / contextos fora da tela, onde o segundo Ca não seria um não operacional.
Por padrão, o Ca Ca está vinculado ao outro comando (alterne para a tela ativa mais recente) na tela . Para que o Ca Ca envie um Ca real e o Ca o troque de janela, coloque o seguinte em
.screenrc
:fonte
Não há necessidade de solução alternativa.
Para ir para o início da linha enquanto usa a tela no bash, use
Control- A(solte e depois)A
Em geral, se houver um caractere de controle de tela em conflito com um atalho do bash, o primeiro do atalho do bash Controlserá substituído por Control-A
Da mesma forma para outros atalhos de edição de linha.
fonte
Eu uso C- \ for Screen e não posso recomendar o suficiente. Você pode encontrar qualquer outra definição de chave em acidente, mas geralmente não C- \. É disso que eu gosto.
fonte
Eu uso isso .
screenrc
Exemplo: para desanexar, digite
ctrl-b d
fonte
Eu uso ctrl-_ (que também pode ser produzido por ctrl + 7 e geralmente ctrl + /) com screen / tmux.
fonte
Eu uso ctrl-z na maioria das vezes, mas também uso ctrl-x para alguns. Não uso muito a interrupção 'stop', mas quando necessário, posso digitar ^ zz. Isso também me permite iniciar sessões de tela secundárias em servidores remotos que usam o ctrl-a padrão. E se eu iniciar uma terceira sessão (em um terceiro servidor), então eu posso usar ctrl-x. Ctrl-x é a função da tela de bloqueio, que em muitos ambientes não é tão usual (uma vez que a tela geralmente é executada dentro de um emulador de terminal).
fonte