Depende exatamente o que você quer fazer.
Os terminaispossuem dois modos principais que podem ser ajustados com ajustes extras:
- modo cozido / canônico. Nesse modo, o terminal vem com um editor interno de linhas, onde os caracteres
^H
(ou^?
),^W
,^U
(ou@
),^V
(ou\
) podem ser usado para editar a linha. Nada é enviado para a leitura do aplicativo do dispositivo terminal até que o caractere^J
seja recebido. - Modo raw . Onde cada caractere estiver disponível para leitura no aplicativo lendo o dispositivo terminal assim que for digitado, ou após um atraso ou depois de tantos terem sido inseridos dependendo do tempo e min parâmetros, mas em qualquer caso, não com esse editor de linha interna.
Em ambos os casos, o caractere ^M
(CR) pode ser traduzido automaticamente para ^J
(LF) (ou ignorado para os terminais que enviam CR e LF ao pressionar Enter).
O primeiro modo é o modo padrão do terminal. O segundo modo é usado por aplicativos como zsh
, bash
ou vi
que desejam assumir o controle da edição da linha.
No primeiro modo, você não pode alterar qual caractere é usado para aceitar a linha.
Mas você pode dizer ao seu terminal para enviar o caractere ^J
ao pressionar essa ou aquela tecla. Por exemplo, com xterm
, você pode usar o recurso translations
X11 para alterar o mapeamento de chaves e dizer a ele para enviar o que quiser em uma determinada tecla pressionada. Se o seu terminal não suporta o remapeamento do teclado, você ainda pode usar o GNU screen
para fazer a tradução para você. Por exemplo, se o seu terminal enviar a seqüência de caracteres ^[OP
ao pressionar F1 , você poderá adicionar
bindkey 3OP "2"
para o seu ~/screenrc
para dizer para enviar LF quando você pressionar F1
Para o segundo caso, é onde os aplicativos assumem o controle da entrada, você ainda pode usar a mesma abordagem acima, mas também pode configurar cada aplicativo individual para fazer isso e quando pressionar F1
Por exemplo, com zsh
, o caractere LF é ligado ao widget accept-line
zsh
. Você poderia fazer:
bindkey "^[OA" accept-line
ter F1 ligado ao mesmo widget.
Note que Ctrl + Space geralmente envia o caractere NUL ao qual você pode se referir como
ou %code% . ^@