Bash: Come faccio a spostare il cursore a sinistra una parola alla volta?


14

In OSX posso semplicemente tenere premuto il optiontasto e premere il tasto cursore sinistro fino ad arrivare alla parola che devo modificare (o in Vi posso semplicemente premere b, ma non sono stato in grado di capire come farlo nel Terminale ancora...


Puoi vedere l'elenco completo dei binding readline in questa pagina , incluse le istruzioni su come personalizzare i tuoi binding.
Jasonwryan,

Risposte:


26

Per impostare l'associazione dei tasti: devi prima scoprire quali codici chiave crea la sequenza di tasti Ctrl+ Left. Basta usare il comando catper disattivare qualsiasi interferenza con i tasti esistenti e quindi digitare la sequenza di tasti. Nel mio sistema (Linux), sembra che:

$ cat
^[[1;5D

Premi Ctrl+ dper uscire da cat. Ora hai scoperto che Ctrl-Left rilascia 6 codici chiave:

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

Ora puoi emettere il comando bind:

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

6
Puoi aggiungere `` "\ e [1; 5D": parola-indietro '' in $ HOME / .inputrc per un effetto permanente se vuoi.
llhuii,

@llhuii +1, ho dimenticato di menzionarlo!
Daniel Kullmann,

2
+1 per il modo più flessibile per associare combinazioni di tasti arbitrarie ovunque!
Irfy,

14

La funzione bash che vuoi è backward-word. È possibile eseguire bind -q backward-wordper ottenere un elenco di tasti associati a tale funzione. Un legame comune è Esc+b

Inoltre, molti terminali supportano Ctrl+ Left(lo stesso tasto di scelta rapida che puoi usare in X per saltare indietro di una parola)


1
Ok, ritorna backward-word can be invoked via "\eb".ma come posso associare control + Left invece di Esc + b? Inoltre, uno svantaggio di Esc + b che posso già vedere è che devo abbandonare il tasto Esc ogni volta che posso per tornare indietro di una parola, non c'è un modo migliore?
Nipponese,

1
C'è un modo migliore? Naturalmente: set editing-mode vi:)
jasonwryan,

3
@nipponese "esc b" può anche essere usato sulla tastiera come ALT-b. Potrebbe essere necessario che sia specificamente l'alt sinistra o destra a seconda della configurazione, quindi prova entrambi.
Casuale 832

8

La scorciatoia da tastiera predefinita in Bash per backword-wordè Alt+ b. Lo stesso risultato può essere ottenuto con Esc+ b. Dovresti provarli prima di modificare le tue combinazioni di tasti.

Utilizzare il bindcomando per modificare o bind -q [name]per ottenere il keybind corrente di un'azione specifica.


2
... e avanti -Alt + f
Putnik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.