Esta é uma resposta longa e básica, mas também abordamos o problema Ctrl-D que você listou na resposta do OP abaixo
Eu vejo uma grande confusão aqui de terminal e shell . A rolagem não é feita pelo seu shell, mas pelo seu terminal. O que screen
e o que tmux
fazer é adicionar outro terminal no topo do seu terminal gnome para cada sub-janela (que pode parecer estranho no começo, mas um terminal não é exatamente o que você vê, mas na verdade é apenas um dispositivo, geralmente em / dev / pts /, onde um processo pode ler e escrever bytes para).
Como a tela executa seus pseudo-terminais na parte superior do seu terminal gnome, não há chance de interceptar as teclas que o gnome-terminal já intercepta. Ele precisa ter suas próprias teclas de atalho, e você, como usuário, não deve pressionar as teclas de atalho que o gnome-terminal entende. Você pode, mas o resultado não será o que você esperava, pois o gnome-terminal não conhece a bagunça criada pela tela.
Na verdade, você pode ter atalhos apenas interceptados pelo seu shell (não pelo terminal onde o shell lê seus caracteres), mas esses não devem ser afetados, a menos que envolvam Ctrl-A (a única tecla interceptada pela tela em cima das teclas que são interceptado pelo subsistema de terminal (por exemplo, Ctrl-C)). Eles devem funcionar da mesma maneira. Alguns dos atalhos geralmente interpretados por esse bash
shell são Ctrl-A (tela interna, você deve usar Ctrl-A a) para mover o cursor para o início do comando editado e Ctrl-E (funciona dentro da tela da mesma maneira que fora da tela) para ir até o fim.
Eu sei que parece complicado, mas é realmente simples, porque um terminal é apenas um arquivo no qual você pode escrever e ler bytes. Aqui está um excelente artigo que cobre muitas coisas relacionadas, se você estiver interessado: http://www.linusakesson.net/programming/tty/index.php
Para se preocupar, por exemplo, com o problema Ctrl-D (uma combinação de teclas que deve ser interpretada pelo shell ), verifique se os caracteres gerados pelo Ctrl-D são os mesmos em um terminal gnomo e em um terminal de tela. Você pode ver o personagem, por exemplo, com cat
. Eu suspeito que eles são realmente os mesmos (é o que acontece no meu sistema), e se sim, isso significa que a tela lançou outro shell que o gnome-terminal normalmente. Nesse caso, descubra qual shell é lançado nativamente por um terminal gnome e inicie esse shell (com os mesmos argumentos da linha de comando) na sua sessão de tela também.