Como procurar um “caractere de comando” adequado para a tela GNU?

1

Eu estou tendo dificuldade em encontrar um "caractere de comando" para a tela GNU que não colida com alguma combinação de teclas que eu já usei.

Através do Emacs (e do org-mode, e do meu shell regular, etc.), praticamente todos os caracteres de comando que consistem em Ctrl + [A-Z] estão fora dos limites .

Eu acho que, se houvesse uma maneira simples, e consistente , de digitar qualquer um dos caracteres no intervalo ASCII de 27 a 31, isso poderia resolver o problema.

Há alguma ferramenta que eu possa usar para encontrar uma maneira de digitar um desses caracteres que se encaixa nos critérios acima?

(BTW, por "consistente" quero dizer que pode ser digitado da mesma forma em "todos os teclados", ou pelo menos em "todos os teclados dos EUA".)

    
por kjo 20.11.2015 / 19:09

3 respostas

1

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.

Ctrl + ] (Emacs: 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.

    
por 21.11.2015 / 01:12
0

Eu uso o Meta-a para a tela, porque todos os caracteres de controle já estão em uso pelos meus aplicativos. Para fazer isso, eu coloco meus xterms no modo de 8 bits (codificação UTF-8 desativada, LANG = C) e coloco

escape "<E1>a"

no meu ~/.screenrc , onde <E1> é o byte hex 0xe1 (ou seja, minúscula a com o bit alto definido para escape e um a para enviar um meta-a). / p>

Isto não é tão bom se você se preocupa com o UTF-8 em seu xterms, mas funciona bem se você está bem com o simples 8-bit.

    
por 20.11.2015 / 19:31
0

Eu pessoalmente uso Ctrl-J para a tela GNU por 2 motivos:

  • normalmente é vinculado à chave de retorno, por isso não é muito usado,
  • seu dedo normalmente está localizado lá se você for um datilógrafo.

    escape ^ Jj

por 20.11.2015 / 19:41