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

13

No OSX eu posso apenas segurar a tecla option e pressionar a tecla de cursor esquerda até chegar à palavra que eu preciso editar (ou no Vi eu posso apenas pressionar b , mas ainda não consegui descobrir como fazer isso no Terminal ...

    
por nipponese 09.07.2012 / 08:01

3 respostas

25

Para definir a ligação de chave: Você primeiro precisa descobrir quais códigos-chave a seqüência de teclas Ctrl + Esquerda cria. Basta usar o comando cat para desativar qualquer interferência com as associações de teclas existentes e, em seguida, digite a seqüência de teclas. No meu sistema (Linux), isso parece assim:

$ cat
^[[1;5D

Pressione Ctrl + d para sair do cat. Agora você descobriu que Ctrl-Left emite 6 códigos-chave:

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

Agora você pode emitir o comando de vinculação:

bind '"\e[1;5D": backward-word'
    
por 09.07.2012 / 10:13
14

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

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

    
por 09.07.2012 / 08:40
7

O atalho de tecla padrão no Bash para backword-word é Alt + b . O mesmo resultado pode ser obtido com Esc + b . Você deve experimentá-los antes de editar suas combinações de teclas.

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

    
por 10.07.2012 / 16:39