No Bash (shell de terminal do Mac / Linux), as teclas de seta para cima e para baixo podem funcionar como nos editores de texto?

8

Nos editores de texto, se eu pressionar as teclas de seta para cima e para baixo, ele moverá o cursor entre as linhas de texto.

No Bash, se eu estiver digitando um comando longo que abranja várias linhas e pressionar as teclas de seta para cima e para baixo, ele percorre o histórico de comandos.

Eu quero o antigo comportamento no Bash. Isso é possível? Caso contrário, existe alguma maneira de mover o cursor diretamente para cima ou para baixo em um comando de várias linhas?

Frungi
fonte
Eles se movem entre linhas ... só que a linha é muito longa.
Vonbrand #

Respostas:

11

Não, não é possível. O Bash usa o GNU Readline para lidar com a entrada de linha interativa. Não existe um comando no Readline que se mova entre as linhas de exibição como você deseja, nem existe uma variável de configuração comparável à variável visual de movimentação de linha do GNU Emacs que faz com que a linha seguinte e a linha anterior se movam pelas linhas de exibição.

Kyle Jones
fonte
Desapontante, mas obrigado! E eu acho que as respostas a outra pergunta seria útil para as pessoas com essa mesma pergunta: stackoverflow.com/questions/657130/...
Frungi
5

O que faço é pressionar CTRL + Seta para a esquerda e ela saltará para a primeira letra após o último espaço encontrado. Você pode chegar rapidamente onde precisa, fazendo isso.

chrstphrmllr
fonte
1
Essa é uma ligação de chave não padrão. A ligação de tecla padrão para retroceder uma palavra é Alt + b. Veja cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC5
sleske
3

Talvez você esteja procurando algo como xiki. É como um shell / editor de texto.

Aqui está uma demonstração em vídeo: http://youtu.be/bUR_eUVcABg

Jason
fonte
Xiki parece incrível! Eu quero algo parecido que pode funcionar com janelas ...
Max
2
@ Max, de acordo com a página do github do projeto, "Acabamos de corrigir o el4r, para que haja uma chance do Xiki funcionar no Windows". Você pode conferir aqui: github.com/trogdoro/xiki
jason
Isso é surpreendentemente limpo e nerd, mas realmente não é o que eu estava querendo fazer. Eu só queria usar o Bash ou algum outro shell comum. Obrigado, no entanto!
Frungi
3

Você pode usar Ctrl+ Lefte Ctrl+ Rightpara navegar pelas palavras em vez dos caracteres Homee Endir para o início e o fim do comando digitado.

Sekhemty
fonte
2
Além disso, Ctrl + A para ir para o início e Ctrl + E para ir até o fim
Ignis
1
@ignis você deve colocar isso em uma resposta.
Evilsoup
2

Consulte também a página de bash(1)manual na Commands for Movingseção de cabeçalho para outros atalhos de navegação.

Nevin Williams
fonte
1

Ctrl + A para ir para o início e Ctrl + E para ir para o final do comando.

ignis
fonte