Você pode usar qualquer tecla de função que a Tela reconheça como o caractere de escape. Configure o caractere de escape (mais precisamente, o byte de escape ) para um que você nunca digite, por exemplo, 7
, que nunca é usado pelo UTF-8. Vincule a chave que você deseja usar como a chave de escape para command
, por exemplo F12 (que é F2
em termcap speak - consulte a seção “Input translation” no manual Screen):
escape 77
bindkey -k F2 command
Você não está limitado a chaves para as quais a Tela conhece um nome simbólico. Para definir uma chave arbitrária ou um teclado como a tecla de comando (a chave precisa enviar uma seqüência de escape no terminal), descubra qual seqüência de escape envia pressionando Ctrl + V então essa chave em um prompt de shell. Isso faz com que a seqüência de escape seja inserida literalmente, em vez de ser reconhecida pelo shell como uma seqüência de escape. Por exemplo, se você quiser usar F12 , você pode pressionar Ctrl + V e então F12 , que insere ^[[24~
(o primeiro ^[
representa o caractere de escape) (alguns terminais podem enviar uma seqüência de escape diferente); então você usaria
bindkey ^[[24~ command
Eu uso Ctrl + \ como minha chave de escape da tela ( escape ^\\
), e vou Ctrl + \ \ injeta um caractere ^\
. Poucos programas usam o caractere de controle ^\
. No Emacs, ele chama toggle-input-method
, o que eu não uso; sua milhagem pode variar. Em um terminal cozido, ele envia SIGQUIT, que raramente é útil (quando necessário, Ctrl + Z seguido pelo comando kill
geralmente funciona também; tendo despejos de núcleo desativados). Ctrl + \ pode ser difícil de digitar em alguns layouts de teclado onde \ requer AltGr , mas no layout norte-americano é simples. Eu também configuro meu emulador de terminal para enviar o caractere ^\
quando pressiono Ctrl + ', o que permite que eu digite com a mão esquerda também.
abort-recursive-edit
) e Ctrl + ^ (Emacs: indefinido; mas é difícil digitar em um teclado americano, bem como em muitos outros layouts) são outros prováveis candidatos para um usuário do Emacs.
A propósito, se você só usar o Screen para executar o Emacs e alguns shells, você não precisa do Screen. O Emacs pode desempenhar o mesmo papel. Mantenha um único processo do Emacs em execução e use emacsclient
para abrir uma janela neste processo do Emacs a partir de qualquer terminal. Se o terminal desaparecer, você poderá executar emacsclient
novamente para se conectar à mesma instância do Emacs. Você pode ter quantas instâncias de emacsclient
que você quiser que estão conectadas à mesma instância do Emacs, possivelmente exibidas através de diferentes conexões locais e remotas.
Para iniciar o Emacs sem interface, execute emacs --daemon
. Em seguida, execute emacsclient -c
para abrir uma janela para a instância existente do Emacs (ou emacsclient -c -nw
para forçar uma janela de modo de texto). Se você deseja iniciar o Emacs se ele ainda não foi iniciado, mas se conectar à instância existente do Emacs, se houver, execute emacsclient -a '' -c
.
Se você quer rodar shells, você pode usar M-x shell
ou M-x term
ou algo parecido dentro do Emacs. O Emacs pode fazer praticamente tudo que o Screen pode fazer.