it-swarm-pt.tech

Existe algum modo nenhum Terminal OS X para mover o cursor?

Eu conheço a combinação Ctrl+A saltar para o início do comando atual e Ctrl+E para pular para o final.

Mas existe alguma maneira de pular Word por Word, como Alt+/ em aplicações de cacau faz?

720
Arne

Fora da caixa você pode usar o bastante bizarro Esc+F para ir para o início da próxima palavra e Esc+B para ir para o início do Word atual.

522
Kristian J.

No Mac OS X - os seguintes atalhos de teclado funcionam por padrão. Note que você tem que fazer Option chave agir como Meta em Preferências de terminal (sob a aba do teclado)

  • alt (⌥)+F pular F orward por uma palavra
  • alt (⌥)+B pular B desajeitado por uma palavra

Eu observei que as ligações de teclas padrão do emacs para navegação de texto simples parecem funcionar em shells bash. Você pode usar

  • alt (⌥)+D para excluir uma palavra a partir da posição atual do cursor
  • ctrl+A pular para o começo da linha
  • ctrl+E pular para o final da linha
  • ctrl+K para matar a linha a partir da posição do cursor
  • ctrl+Y colar texto do buffer de kill
  • ctrl+R para reverter a pesquisa de comandos que você digitou no passado do seu histórico
  • ctrl+S para encaminhar pesquisa (funciona em zsh para mim, mas não em bash)
  • ctrl+F avançar por um char
  • ctrl+B para retroceder por um caractere
  • ctrl+W remover a palavra para trás da posição do cursor
384
Varun Katta

Veja como você pode fazer isso

Por padrão, o Terminal tem esses atalhos para mover (para a esquerda e para a direita) Word-by-Word:

  • esc+B (esquerda)
  • esc+F (certo)

Você pode configurar alt+ e  para gerar essas seqüências para você:

  • Abra as preferências do Terminal (cmd+,);
  • Na guia Configurações, selecione Teclado e clique duas vezes em ⌥ ←, se houver, ou adicione-o, se não estiver.
  • Defina o modificador conforme desejado e digite a chave de atalho na caixa: esc+B, gerando o texto \033b (você não pode digitar este texto manualmente).
  • Repita para o Word-right (esc+F torna-se \033f)

Alternativamente, você pode se referir a esta postagem do blog no textmate:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

Mude para iTerm2 . É grátis e muito melhor do que o antigo terminal. Também tem muito mais opções para personalização, como atalhos de teclado.

Também adoro que você possa usar cmd e 1-9 para alternar entre as guias. Experimente e você nunca vai voltar ao terminal regular :)

Como configurar preferências de teclado personalizadas em iterm2

  • Instalar o iTerm2
  • Inicie e vá para o painel de preferências.
  • Escolha a guia de perfis de teclado
  • Você precisará copiar o perfil para algo novo e excluir os atalhos da tecla de seta, como ^Right/Left ou se você não se importa com um backup, basta excluí-los do perfil padrão.
  • Em seguida, verifique se seu perfil modificado está selecionado (com estrela)

Picture 1.png

  • Agora escolha a guia do teclado (linha muito superior)

iTerm 2

  • Clique no botão de adição para adicionar um novo atalho de teclado
  • No primeiro tipo de caixa CMD+Left arrow
  • Na segunda caixa, escolha "enviar código de escape"
  • Na terceira caixa, digite a letra B

Picture 2.png

  • Repita com as combinações de teclas desejadas. escape+B move uma palavra para a esquerda escape+f move uma palavra para a direita.
  • você também pode querer configurar cmd+d para apagar a palavra na frente do cursor com escape+d

Eu costumo apertar o botão errado (cmd / control / alt) com uma tecla de seta e então eu tenho minhas combinações de teclas de seta com esses botões todos configurados para pular para frente e para trás palavras, mas por favor, faça o que melhor lhe convier.

157
cwd

Na verdade, há uma abordagem muito melhor. Aguarde option ( alt em alguns teclados) e pressione as teclas de seta para a esquerda ou direita para mover pelo Word. Simples assim.

option
option

Além disso ctrle vai levá-lo para o final da linha e ctrla levará você para o começo.

142
mdubez

Eu tenho Alt+/ trabalhando: open Preferências "Configurações" Teclado, defina a entrada para opção cursor left para envie string para Shell:\033b, e defina - cursor de opção à direita para enviar string para Shell:\033f. Você também pode usar isso para outras combinações de teclas de controle.

78
Peter Hilton

Na verdade, depende de qual Shell você usa, no entanto, a maioria das shells tem ligações semelhantes. As ligações a que você está se referindo (por exemplo, Ctrl+A e Ctrl+E) são ligações que você encontrará em muitos outros programas e são usadas por muito tempo, BTW também funciona na maioria dos aplicativos de interface do usuário.

Aqui está uma aparência de ligações padrão para o Bash:

Atalhos de Teclado Bash Mais Importantes

Por favor, note também que você pode personalizá-los. Você precisa criar um arquivo, nome como quiser, eu nomeei o meu .bash_key_bindings e coloquei no meu diretório home. Lá você pode definir algumas opções básicas de bash e também é possível definir ataduras de teclas. Para se certificar de que eles são aplicados, você precisa modificar um arquivo chamado ". Bashrc" que o bash lê na inicialização (você deve criá-lo, se não existir) e faça o seguinte:

bind -f ~/.bash_key_bindings

~ significa home diretório no bash, como dito acima, você pode nomear o arquivo como quiser e também colocá-lo onde quiser, contanto que você alimente o caminho certo + nome para ligar.

Deixe-me mostrar alguns trechos do meu arquivo .bash_key_bindings:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Eles apenas definem algumas opções (por exemplo, desativar a campainha; isso pode ser visto na página da web do bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Eles garantem que os caracteres, por si só, não façam nada além de garantir que o caractere seja "digitado" (eles se inserem no Shell).

"\C-dW": kill-Word
"\C-dL": kill-line
"\C-dw": backward-kill-Word
"\C-dl": backward-kill-line
"\C-da": kill-line

Isso é bem interessante. Se eu acertar Ctrl+D sozinho (selecionei d para excluir), nada acontece. Mas se eu, em seguida, digite um minúsculo w, o Word à esquerda do cursor é excluído. Se eu digitar uma maiúscula, no entanto, o Word à direita do cursor é morto. O mesmo vale para l e L em relação à linha inteira a partir do cursor. Se eu digitar um "a", a linha inteira é realmente excluída (tudo antes e depois do cursor).

Eu coloquei pulando uma palavra para frente Ctrl+F e uma palavra para trás Ctrl+B

"\C-f": forward-Word
"\C-b": backward-Word

Como você pode ver, você pode fazer um atalho, que leva a uma ação imediatamente, ou você pode fazer uma, que apenas emite uma sequência de caracteres e então você tem que digitar um (ou mais) caracteres para causar uma ação como mostrado no exemplo acima.

Portanto, se você não estiver satisfeito com as ligações padrão, sinta-se à vontade para personalizá-las como desejar. Aqui está um link para o manual bash para mais informações.

38
Mecki

Se acontecer de você ser um usuário do Vim, você pode tentar o modo vim do bash. Execute isto ou coloque-o no seu arquivo ~/.bashrc:

set -o vi

Por padrão, você está no modo de inserção; acerte escape e você pode se movimentar como em Vim de modo normal, então o movimento pelo Word é w ou b, e as teclas de movimento usuais também funcionam .

14
jches

Se você marcar Use option as meta key na aba do teclado das preferências, então os comandos padrão do estilo emacs para forward e backward-Word e ⌥F (Alt+F) e ⌥B (Alt+B) respectivamente.

Eu recomendo a leitura do Bash ao Z-Shell . Se você quer aumentar sua proeza de bash/zsh!

14
Matt

A partir do Mac OS X Lion 10.7, os mapas do Terminal Option-Left/Right Arrow para Esc-b/f por padrão, portanto, isso agora está embutido no bash e em outros programas que usam esses atalhos compatíveis com o emacs.

12
Chris Page

No Bash, estes são obrigados a Esc-B e Esc-F. Bash tem muitos, muitos mais atalhos de teclado; dê uma olhada na saída de bind -p para ver o que eles são.

8
Andy Lynch

Em iterm2 Preferences> Profile> Keys , você clica no + abaixo Key Mappings e gravar um novo atalho. Para Ação , selecione Send Escape Sequence e digite b ou f para trás e para frente, respectivamente.

Quando tentei gravar um para (Ctrl+), Notei no campo Atalho de Teclado que a seta nunca apareceu. Acontece que eu tive que desativar os limites do sistema padrão do Mac Preferências> Teclado> Atalhos> Controle de Missão primeiro para fazer as coisas funcionarem, já que elas substituiriam as do iter. atalhos padrão. Deve ser verdade para o aplicativo terminal padrão também.

Keyboard system preferences

3
qix

Mantenha pressionada a tecla Option e clique onde deseja que o cursor se mova

3
Dan Alboteanu

Use Edição de Texto Natural preset!

enter image description here

Essencialmente, ele liga, entre outras seqüências de teclas, Option + LeftArrow a ^[b sequence e Option + RightArrow a ^[f

Isso funciona em peixes e bash, bem como no terminal psql.

1
Dziamid