As teclas home
e end
no MacBook Pro podem ser emuladas com fn + seta para a esquerda ou fn + seta para a direita. Ou quando certas configurações são alteradas, com a tecla Command (Apple) em vez de fn.
Nenhuma dessas obras no Terminal.
Como frequentemente preciso ir para o início ou o fim da linha e também gostaria de pular para frente ou para trás por palavra.
Como posso pular uma linha no Terminal?
Para responder sobre como obter o início ou o fim da linha, parece que, por padrão, o Terminal mapeia essas chaves:
Se você deseja que a casa e o final trabalhem da maneira "normal" (e não exija mudança), vá para [Menu Terminal] → Preferências → guia Perfis (ou configurações em algumas versões do OS X) → subguia Teclado.
Em seguida, modifique / adicione essas chaves para que seja o seguinte "enviar string para shell"
\033[H
\033[F
Você pode obter a
\033
peça pressionando a tecla Escape na entrada da caixa de diálogo de edição, se precisar adicioná-la.Então o lar e o fim voltarão a funcionar normalmente (ufa).
Observe também que "alt + ←" e "alt + →" por padrão no terminal mapeiam a palavra esquerda e a palavra direita, outra combinação útil a ser lembrada.
Nas versões posteriores do Mac OS X, se a tela do terminal mudar para cima ou para baixo quando você pressionar a tecla Home / End, talvez seja necessário definir a tecla Home
\033[1~
e a tecla End\033[4~
para obter os resultados desejados (nenhuma mudança é necessária) .Sinta-se à vontade para modificar esta resposta para adicionar combinações de teclas mais úteis, pois é um wiki da comunidade.
fonte
Parece que você está procurando alguma ajuda para usar o readline e o bash. Aqui está uma lista insana de itens de teclado modificados em: http://www.math.utah.edu/docs/info/features_7.html#SEC45
Ctrla Mover para o início da linha.
Ctrle Mover para o final da linha.
Escf Avançar uma palavra.
Escb Retroceder uma palavra.
Ctrll Limpe a tela, reimprimindo a linha atual na parte superior.
Ctrlk Coloque o texto da posição atual do cursor até o final da linha.
Escd Mate do cursor até o final da palavra atual ou, se estiver entre as palavras, até o final da próxima palavra.
EscDel Mate do cursor o início da palavra anterior, ou se entre palavras, até o início da palavra anterior.
Ctrlw Mate do cursor para o espaço em branco anterior. Isso é diferente EscDelCtrla porque os limites das palavras diferem.
Ctrld Exclua o caractere abaixo do cursor.
Ctrl_ Desfazer a última coisa que você fez. Você pode desfazer todo o caminho de volta para uma linha vazia.
E, aqui está como puxar o texto de volta para a linha. Arrancar significa copiar o texto morto mais recentemente do buffer de interrupção.
Ctrly Coloque o texto morto mais recentemente de volta no buffer no cursor.
Escy Gire o anel de abate e puxe o novo topo. Você só pode fazer isso se o comando anterior for Ctrlyou Escy.
fonte
Para aqueles que preferem usar as setas, pressionar fnShift+ Left Arrowo levará para casa na linha de comando. Da mesma forma, fnShift+ Right Arrowo levará até o fim.
fonte
Você pode mover uma palavra de cada vez com option+ lefte option+ right.
Quanto ao uso de homee end, as ligações padrão do Terminal são as seguintes:
Em muitos outros aplicativos de terminal (em várias plataformas), os pares modificados e não modificados são revertidos (ou seja, nus homee endsão usados para pular a linha atual e as versões modificadas (por uma shiftou outra coisa)) são usadas para navegar no buffer de rolagem ) Você pode reverter as ligações do Terminal para funcionar dessa maneira, se desejar, fazendo o seguinte:
Vá para o menu Terminal → Preferências → guia Configurações / Perfil → subguia Teclado.
Em seguida, modifique os pares de chave-ação para serem os seguintes:
Nota: \ 033 é inserido na caixa de texto a ser enviado na caixa de diálogo Editar pressionando a tecla Escape.
Enquanto estiver lá, você pode trocar as ligações de modificado e não modificado page upe page down, para manter as coisas consistentes: pressionar uma tecla de navegação com shiftrepresenta um comando para o próprio Terminal (para navegar no buffer de rolagem como um documento), enquanto pressiona um sem envia a chave-prima até tudo o que está sendo executado dentro dele (por exemplo
bash
,less
,nano
,screen
, etc.). Os pares chave-ação para isso são:fonte
As outras respostas são ótimas e mais portáteis, mas aqui está "o caminho do OS X" para um teclado comum (que é o oposto de muitos outros terminais). Tente o seguinte:
ShiftHome- Início da linha
ShiftEnd- Fim da linha
De http://www.greenend.org.uk/rjk/tech/macbits.html
fonte
O mapeamento homee as endteclas com a funcionalidade desejada resolverão facilmente o problema.
Muitas respostas foram postadas, mas no caso de você estar usando
zsh
, você pode definir homepara:e defina endpara:
clicando em preferência - perfil - teclado.
fonte
Essa é a maneira mais eficaz de fazê-lo funcionar também com o vim. Vá para Terminal -> Preferências -> Perfis -> Teclado e adicione:
Chave: ↖ Ação: \ 033OH
Chave: ↗ Ação: \ 033OF
fonte
Eu gostaria de fornecer uma solução alternativa para esse problema. Isso funciona muito bem se você é um usuário vi. As ligações de teclas do Vim no terminal fornecem uma maneira de usar o seu terminal no estilo vim. Você pode fazer isso digitando o
set -o vi
terminal e sinta-se à vontade para colocá-lo,.bash_profile
se quiser. Depois disso, seu terminal é efetivamente um editor de vim. Você pode usar aesc
tecla para entrar no modo de comando e andar de um modo vim. Por exemplo,0
leva você ao começo e$
leva ao final. Você também pode usarI
eA
para ir para o início e o fim e entrar no modo de edição imediatamente.w
eb
permitir avançar e retroceder uma palavra. E se você tentar entrar no modo visual pressionandov
, você receberá um editor de vim e o texto que você tiver ao sair deste editor será executado no terminal.Esteja ciente de que essa ligação de chave do vim anulará todas as teclas de acesso rápido que você aprendeu de outras respostas.
fonte
aqui está a lista em formato imprimível, conforme desejado :)
http://pastebin.com/uCqwn7qs
Eu também corrigi um "bug" na descrição. Isto é o que você poderia ler originalmente nas instruções:
ESC-d Mate do cursor o início da palavra anterior, ou se entre as palavras, até o início da palavra anterior.
Isso cheira mal como um erro de recortar e colar, pois as duas frases parciais dizem a mesma coisa. Dizendo da lógica simples, a primeira metade deve realmente ler "do cursor até o início da palavra atual".
fonte
fonte