Isso depende do shell em questão.
Alguns shells (como AT&T ksh88) praticamente não oferecem edição de linha de entrada.
Nos shells que implementam a vi
edição do modo (talvez seja necessário habilitar isso set -o vi
), isso é feito pressionando Esc(para alternar do modo de inserção) seguido de 0para pular para o início da linha ou $para o final da linha. Em seguida, entre novamente no modo de inserção pressionando i- o cursor permanecerá onde está - ou a- o cursor se moverá um para a direita para adicionar texto.
vi
A edição do modo foi recentemente ordenada pelo padrão POSIX.
A edição de modo muito mais comum emacs
(graças aos deuses, não tem nada a ver com o sistema de edição-barra-operacional do Emacs) usa Ctrl-Apara pular para o início da linha e Ctrl-Epular para o final da linha. Este modo requer que você execute set -o emacs
muitos shells (principalmente o AT&T ksh93), mas é ativado por padrão no mksh e no GNU bash.
A maioria das conchas modernas suporta os modos emacs
e vi
. (Ambos os modos exigem um tty para funcionar.)
Em muitos shells, você pode personalizar as combinações de teclas; geralmente para o emacs
modo, embora alguns shells também permitam personalizar a combinação de teclas para o vi
modo. Se você tem uma chave à qual deseja vincular isso, primeiro precisa descobrir as sequências de teclas que ela produz (por exemplo, no meu sistema, Alt-CursorLeftproduz Esc+[+1+;+3+D( ^[[1;3D
; ^X
é Ctrl-Xe ^[
é Esc)), para que eu possa digitar algo como
bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'
e terá essa combinação de teclas alterada, dependendo do shell. Geralmente, você pode persistir no arquivo de inicialização ( ~/.mkshrc
, ~/.kshrc
) ou, para o GNU bash, em ~/.inputrc
. Observe que nem todos os shells suportam bindind todas as chaves em todas as versões.
Geralmente, você pode descobrir quais caracteres uma chave gera apenas executando cat
no shell, digitando a chave e assistindo. Depois pressione ^C
( Ctrl-C) para abortar cat
.