Shell: como ir para o início da linha quando você está dentro de uma tela?

70

Estou dentro de uma tela (tela -Ra). Eu tenho um longo comando e estou no final. Em vez de manter a seta esquerda, como você pode ir para o início da linha?

CTRL-A funciona quando estou em uma janela normal, mas quando estou dentro de uma tela, pressionar CTRL-A exibe a mensagem "Nenhuma outra janela" - parece que CTRL-A é despachado para a tela.

Como você vai para o início de uma linha em uma tela?

user11498
fonte
3
Solução rápida: pressione a Hometecla para chegar ao início e Endchegar ao fim da linha.
11
Isso também depende muito do modo de entrada e shell que você está usando, embora eu assuma que você esteja usando o bash e as ligações padrão do emacs.
Patrick
11
@hesse, dado que o teclado possui um Homebotão. Nem sempre o caso
Matteo
O OP pode estar interessado nesta questão relacionada .
dotancohen

Respostas:

81

Use Ctrl- a a, ou altere a tecla de escape da tela (opção -e).

angus
fonte
6
Caso não esteja claro, pressione Ctrl- a, solte as duas teclas e pressione a. Não cometa o mesmo erro que cometi mantendo Ctrlpressionado. Bom cartão de referência para esta e outras
combinações de
6

Você pode alterar as screenligações ou alterar as ligações do seu shell. Supondo que seu shell seja bash, a saída de bind -p | grep \C-adeve fornecer a ação atual vinculada Ctrl+A. Para vincular essa ação a outra coisa, use o seguinte formulário:

$ bind '"\C-p": beginning-of-line'

Isso será vinculado Ctrl+Ppara mover o cursor para o início da linha. Lembre-se das aspas duplas dentro da expressão. Para desarmar uma ligação, você deve defini-la como nada:

$ bind '"\C-a": '

Para listar todas as seqüências de entrada associadas à ação, use:

$ bind -p | grep beginning-of-line

Por fim, para tornar o vínculo permanente, você pode colocar as instruções em seu ~/.bashrcarquivo e problema source ~/.bashrc.


fonte
6

Ctrl- x- Ctrl- xpermite ir para o primeiro caractere da linha em qualquer ambiente compatível com a linha de leitura, como Bash, python e mysql. A tela GNU ignora isso com segurança. Nenhuma configuração personalizada é necessária.

Se você usar isso em vez de Ctrl- a- a, use uma tecla de atalho consistente - não precisará ter em mente se está na GNU SCREEN ou não.

Para qualquer pessoa interessada, a mesma tecla de atalho também permite ir para o final da linha, se você já está no início.

Tankman 六四
fonte
5
Na verdade C-x C-xé exchange-point-and-mark. Acontece que a marca está no início da linha por padrão. Você pode usar C-spacepara definir a marca em outro lugar.
precisa
Ivan, normalmente o que você pode fazer depois de trocar um ponto e marcar? Obrigado.
Susheel Javadi