Bash: Como movo meu cursor para a esquerda, uma palavra por vez?

Bash: Como movo meu cursor para a esquerda, uma palavra por vez?

No OSX, posso simplesmente manter pressionada a optiontecla e pressionar a tecla do cursor esquerdo até chegar à palavra que preciso editar (ou no Vi posso simplesmente pressionar b, mas não consegui descobrir como fazer isso no Terminal ainda...

Responder1

Para definir a ligação de teclas: Primeiro você precisa descobrir quais códigos de teclas a sequência de teclas Ctrl+ Leftcria. Basta usar o comando catpara desligar qualquer interferência nas combinações de teclas existentes e, em seguida, digitar a sequência de teclas. No meu sistema (Linux), é assim:

$ cat
^[[1;5D

Pressione Ctrl+ dpara sair do gato. Agora você descobriu que Ctrl-Left emite 6 códigos de teclas:

  • Escapar (^[)
  • [
  • 1
  • ;
  • 5
  • D

Agora você pode emitir o comando bind:

bind '"\e[1;5D": backward-word'

Responder2

A função bash que você deseja é backward-word. Você pode executar bind -q backward-wordpara obter uma lista de chaves vinculadas a essa função. Uma ligação comum é Esc+b

Além disso, muitos terminais suportam Ctrl+ Left(a mesma tecla de atalho que você pode usar no X para retroceder por palavra)

Responder3

O atalho de tecla padrão no Bash backword-wordé Alt+ b. O mesmo resultado pode ser alcançado com Esc+ b. Você deve experimentá-los antes de editar seus atalhos de teclado.

Use bindo comando para editar ou bind -q [name]obter o atalho de teclado atual de uma ação específica.

informação relacionada