Atalho do Terminal OS X: pule para o início / fim da linha

115

Eu sei que posso pular no início e no final de uma linha dentro do terminal OS X com Ctrl+ Ae Ctrl+ E. Mas estou tão acostumado a pular com Cmd+ Rightseta e Cmd+ Leftseta no meu editor, que adoraria usar esses atalhos também para o terminal.

Não encontrei solução no google, talvez aqui alguém possa ajudar.

Atualizar

Como nos comentários, tentei a solução de Existe alguma maneira no Terminal OS X de mover o cursor palavra por palavra?

Infelizmente, as configurações do Terminal parecem não incluir Cmduma tecla modificadora, como você pode ver aqui:

Teclas modificadoras do terminal

23tux
fonte
você não pode adaptar isso ?
Thomas Ayoub
Eu atualizei minha pergunta, veja acima
23tux
1
Hmmm, acho que não. Eu tentei, funciona com Option + right-arrow, mas não comCmd + right-arrow
23tux
Você está certo, minha culpa, eu tenho dias difíceis em um PC
Thomas Ayoub
Mais atalhos úteis: stackoverflow.com/a/5542996
AT

Respostas:

23

Eu uso um aplicativo útil chamado Karabiner para fazer isso e muitas outras coisas. É gratuito e de código aberto.

É um remapeador de teclado, com muitos presets úteis para muitos remapeamentos comuns que as pessoas podem querer fazer.

Como você pode ver na imagem, este remapeamento está incluído como uma predefinição no Karabiner.

Captura de tela das preferências do Karabiner mostrando a predefinição para mapear cmd + esquerda / direita para ctrl + a / e

Espero que isto ajude. Feliz remapeamento!

Aaron Wallentine
fonte
3
Esteja ciente de que o Karabiner não funciona no macOS Sierra no momento.
Knuhol
Bom saber; Eu não atualizei. Esperançosamente, o Karabiner será atualizado em breve! :)
Aaron Wallentine
2
Agora ele suporta Sierra e ainda mais. Aqui está o link para algumas regras predefinidas do site do Karabiner .
Java Xu
No link do @JavaXu no comentário diretamente acima de mim, pesquise para Navigation in Terminal Appsencontrar a regra que você precisa importar.
electrovir
126
fn + shift + leftArrow = goto beginning of line
fn + shift + rightArrow = goto end of line

estes funcionam para mim

hygoh2k
fonte
20
Não precisei segurar a tecla shift. fn + leftArrawou fn + rightArrowtrabalhou para mim. Talvez ajude!
Bharat Gupta
7
@BharatGupta fn + leftArrow funciona em alguns aplicativos de terminal (por exemplo, VI), mas não funciona na linha de comando do terminal.
hygoh2k
2
Usando o iTerm2, fn + left e fn + right trabalham sem turno. Com turno, eles não funcionam. ctrl + a e ctrl + e também funcionam.
bhekman
1
Sou um novo usuário do Mac e estou enojado com a dificuldade de tudo no Mac versus Windows! O hardware é bom, mas o software é horrível (ou seja, não amigável)
doctorram 09/09/19
1
Se você é novo no Mac, pense simples, porque quando você usa o Windows por muito tempo, você está acostumado a sempre usar caminhos complicados ... com o Mac você tem que pensar muito simples ... e na maioria das vezes você consegue. Foi assim para mim quando
mudei de
34

No Mac OS mais recente, você pode usar shift+ homeou shift+end

elad silver
fonte
16

Como configurado no terminal usando vi:

O Homebotão de um teclado do MacBook Pro: Fn + Left Arrow.

O Endbotão de um teclado do MacBook Pro: Fn + Right Arrow.

Thinkhear
fonte
9

Não tenho certeza se isso vai funcionar para você (eu ainda uso OS 10.8), mas isso funciona para o meu terminal:

home = move cursor to the start of the line
shift+end = move cursor to the end of the line

alt+leftArrow = move one "word" to the left
alt+rightArrow = move one "word" to the right

Espero que isto ajude!

Boncrete
fonte
1
Em 10.12 Sierra, parece que é shift + home voltar ao início. os outros listados aqui funcionam conforme listado.
Chris
8

fn + leftArraw or fn + rightArrow funcionou para mim!

Thanmayi Rapolu
fonte
8

Para iterm2:

Vá para Perfis / Abrir Perfis / Chaves

Definir Cmd + left_arrow_keypara enviarHex Code 001

Definir Cmd + right_arrow_keypara enviarHex Code 005

Isso permite que você se Cmd + arrow_keysmova do início ao fim da linha.

Timmy Von Heiss
fonte
de acordo com o comentário de @bhekman: "Usando o iTerm2, fn + left e fn + right funcionam sem shift. Com shift, eles não funcionam. ctrl + a e ctrl + e também funcionam."
Alexander Suraphel 01 de
Não vejo cmdcomo uma opção de tecla modificadora, o mesmo que na pergunta original
electrovir
@electrovir apenas mantenha pressionado e pressione as teclas de seta
Timmy Von Heiss
Consulte "Infelizmente, as configurações do Terminal parecem não incluir o Cmd como uma tecla modificadora, como você pode ver aqui" na pergunta original. Eu tenho o mesmo problema. Meu comentário foi sobre como criar a configuração de chave, não executá-la.
electrovir
@electrovir, parece que você está no lugar errado. não há modificador. abrir iterm. vá para preferências. vá para perfis. pressione o botão "+" à esquerda de "Carregar predefinição". Existem dois campos: "Atalho de teclado" e "Ação" para o atalho de teclado, mantenha o comando pressionado a tecla de seta para a esquerda. então para a ação -> "enviar código hexadecimal -> 001"
Timmy Von Heiss
5

Aqui encontrei um ajuste para isso, sem nenhuma ferramenta de terceiros . Isso fará com que o seguinte atalho funcione:

 fn + right: to go to the end of the line.
 fn + left: to go to the beginning of the line.
  • Abra as preferências do terminal. ( cmd + ,).
  • Vá para o tema selecionado e depois para a guia do teclado.

insira a descrição da imagem aqui

  • E adicione uma nova entrada como a seguir. insira a descrição da imagem aqui insira a descrição da imagem aqui

  • Isso é tudo. Agora feche e verifique.

    Espero que ajude.

EDITAR: Consulte o comentário de @Maurice Gilden abaixo para obter mais informações.

Abhishek Saharn
fonte
5
Isso irá inserir apenas "001" ou "005". A barra invertida está faltando e não consegui encontrar nenhuma maneira de adicioná-la manualmente. No entanto, o que você pode fazer é pressionar Ctrl + A para "\ 001" e Ctrl + E para "\ 005" enquanto estiver dentro da caixa de texto.
Maurice Gilden
2
Esta deve ser a resposta absolutamente correta. Todos os aplicativos de terceiros estão corrompidos ou não são mais mantidos e fn + shift + leftArrow não funciona mais no Mojave.
Salyangoz
Isso funcionou brilhantemente. No entanto, selecionei "Fim" em vez de "Página para baixo" para o mapeamento fn + seta para a direita.
nedblorf
2

Você pode baixar Better Touch Tools . É um aplicativo que permite que você crie atalhos de teclado e atalhos personalizados em todo o seu sistema ou em aplicativos individuais. Usando-o, você pode fazer um atalho no terminal que emula ctrl-a / ctrl-e sempre que você pressiona cmd-left / cmd-right, respectivamente. Definitivamente, recomendo! Eu uso há anos e tenho mais de 50 atalhos espalhados por vários aplicativos diferentes.

Jacob
fonte
2
Infelizmente, seu link está quebrado
23tux
Obrigado pelo aviso! Eu consertei isso.
Jacob
Ei @Jacob qual seria a 'ação predefinida acionada' para ir no início ou no fim do comando do terminal?
Oer
Oer, você deve usar a opção "Acionar outro atalho de teclado" e inserir Ctrl-A para ir para o início do comando do terminal e Ctrl-E para ir para o final.
Jacob,
1

em iterm2

fn + leftArraw ou fn + rightArrow

isso funcionou para mim

Ajith
fonte
0

Para o mac os mais recente, os atalhos abaixo funcionam para mim.

Pula para o início da linha == shift + fn + RightArrow

Pula para o final da linha == shift + fn + LeftArrow

Tejas Niturkar
fonte