it-swarm.it

C'è un modo nel terminale OS X per spostare il cursore parola per parola?

Conosco la combinazione Ctrl+A per saltare all'inizio del comando corrente, e Ctrl+E saltare fino alla fine.

Ma c'è un modo per saltare Word by Word, come Alt+/ in applicazioni Cocoa fa?

720
Arne

Fuori dalla scatola puoi usare il piuttosto bizzarro Esc+F per passare all'inizio della prossima parola e Esc+B per spostarsi all'inizio della Parola corrente.

522
Kristian J.

Su Mac OS X: le seguenti scorciatoie da tastiera funzionano per impostazione predefinita. Nota che devi fare Opzione atto chiave come Meta in Preferenze terminale (sotto la tastiera della tastiera)

  • alt (⌥)+F saltare F orward di una parola
  • alt (⌥)+B saltare B ackward da una parola

Ho osservato che le combinazioni di tasti predefinite di emacs per la semplice navigazione del testo sembrano funzionare su shell bash. Puoi usare

  • alt (⌥)+D per eliminare una parola a partire dalla posizione corrente del cursore
  • ctrl+A saltare all'inizio della linea
  • ctrl+E saltare alla fine della linea
  • ctrl+K per uccidere la linea a partire dalla posizione del cursore
  • ctrl+Y per incollare il testo dal kill buffer
  • ctrl+R per invertire la ricerca dei comandi che hai digitato in passato nella cronologia
  • ctrl+S inoltrare la ricerca (funziona in zsh per me ma non bash)
  • ctrl+F per andare avanti con un char
  • ctrl+B per tornare indietro di un carattere
  • ctrl+W per rimuovere la parola indietro dalla posizione del cursore
384
Varun Katta

Ecco come puoi farlo

Per impostazione predefinita, il Terminale ha queste scorciatoie per spostarsi (a destra ea sinistra) Word-by-Word:

  • esc+B (sinistra)
  • esc+F (destra)

Puoi configurare alt+ e  per generare quelle sequenze per te:

  • Apri le preferenze del Terminale (cmd+,);
  • Nella scheda Impostazioni, seleziona Tastiera e fai doppio clic su ⌥ ← se è presente o aggiungilo se non lo è.
  • Impostare il modificatore come desiderato e digitare il tasto di scelta rapida nella casella: esc+B, generando il testo \033b (non è possibile digitare questo testo manualmente).
  • Ripeti per Word-right (esc+F diventa \033f)

In alternativa, puoi fare riferimento a questo post del blog su textmate:

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

273
Fil

Passare a iTerm2 . È gratuito e molto più bello del semplice vecchio terminale. Inoltre ha molte più opzioni per la personalizzazione, come le scorciatoie da tastiera.

Anche io amo che tu possa usare cmd e da 1 a 9 per passare da una scheda all'altra. Provalo e non tornerai mai al terminale normale :)

Come impostare le preferenze della tastiera personalizzata in iterm2

  • Installa iTerm2
  • Avvia e poi vai al pannello delle preferenze.
  • Scegli la scheda Profili tastiera
  • Dovrai o copiare il profilo in qualcosa di nuovo e poi eliminare i tasti freccia come ^Right/Left o se non ti interessa un backup, eliminali semplicemente dal profilo predefinito.
  • Quindi assicurati che il tuo profilo modificato sia selezionato (con Speciali)

Picture 1.png

  • Ora scegli la scheda della tastiera (molto in alto)

iTerm 2

  • Fai clic sul pulsante più per aggiungere una nuova scorciatoia da tastiera
  • Nel primo tipo di casella CMD+Left arrow
  • Nella seconda casella scegli "invia codice di escape"
  • Nella terza casella digita la lettera B

Picture 2.png

  • Ripeti con le combinazioni di tasti desiderate. escape+B sposta una parola a sinistra, escape+f sposta una parola a destra.
  • potresti anche voler impostare cmd+d per cancellare la parola davanti al cursore con escape+d

Spesso prendo il tasto sbagliato (cmd / control / alt) con un tasto freccia e così ho le mie combinazioni di tasti freccia con quei pulsanti tutti impostati per saltare avanti e indietro le parole, ma per favore fai quello che ti sta meglio.

157
cwd

In realtà c'è un approccio molto migliore. tenere option ( alt su alcune tastiere) e premere i tasti freccia sinistra o destra per spostarsi in Word. Semplice come quella.

option
option

Anche ctrle ti porterà alla fine della linea e ctrla ti porterà all'inizio.

142
mdubez

Io ho Alt+/ funzionante: aperto Preferenze "Impostazioni" Tastiera, imposta la voce per opzione cursore a sinistra a invia stringa a Shell:\033b, e imposta - opzione cursore a destra a invia stringa a Shell:\033f. Puoi anche usarlo per altre combinazioni di tasti di controllo.

78
Peter Hilton

In realtà dipende da cosa Shell si utilizza, tuttavia la maggior parte delle shell ha legami simili. I binding a cui ti stai riferendo (ad es. Ctrl+A e Ctrl+E) sono collegamenti che troverai in molti altri programmi e vengono utilizzati per anni, ma funzionano anche nella maggior parte delle applicazioni di interfaccia utente.

Ecco un aspetto dei binding predefiniti per Bash:

Le più importanti scorciatoie da tastiera Bash

Si prega di notare che è possibile personalizzarli. Devi creare un file, nominare come vuoi, ho chiamato il mio .bash_key_bindings e l'ho inserito nella mia home directory. Qui puoi impostare alcune opzioni generali di bash e puoi anche impostare associazioni di tasti. Per assicurarti che siano applicati, devi modificare un file chiamato ". Bashrc" che bash legge all'avvio (devi crearlo, se non esiste) e fai la seguente chiamata lì:

bind -f ~/.bash_key_bindings

~ indica la directory home in bash, come indicato sopra, puoi assegnare un nome al file come preferisci e posizionarlo dove preferisci finché si alimenta il percorso + il nome giusto per il binding.

Lascia che ti mostri alcuni estratti del mio file .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

Questi semplicemente impostano un paio di opzioni (ad esempio disabilita la suoneria, che può essere consultata sulla pagina Web di 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

Questi assicurano che i personaggi da soli non facciano altro che assicurarsi che il carattere sia "digitato" (si inseriscono nella Shell).

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

Questo è abbastanza interessante. Se colpisco Ctrl+D da solo (ho selezionato d per cancellare), non succede nulla. Ma se poi scrivo un minuscolo w, la parola a sinistra del cursore viene cancellata. Se scrivo un maiuscolo, tuttavia, la parola a destra del cursore viene uccisa. Lo stesso vale per L e L che riguardano l'intera linea a partire dal cursore. Se scrivo un "a", l'intera riga viene effettivamente cancellata (tutto prima e dopo il cursore).

Ho messo in avanti una parola in avanti Ctrl+F e una parola indietro Ctrl+B

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

Come puoi vedere, puoi creare una scorciatoia, che porta immediatamente a un'azione, oppure puoi crearne una, che è appena entrata in una sequenza di caratteri e quindi devi digitare uno (o più) caratteri per fare in modo che un'azione venga eseguita come mostrato nell'esempio più sopra.

Quindi, se non sei soddisfatto delle associazioni predefinite, sentiti libero di personalizzarle come preferisci. Ecco un collegamento al manuale di bash per maggiori informazioni.

38
Mecki

Se sei un utente Vim, puoi provare la modalità vim di bash. Esegui questo o inseriscilo nel tuo file ~/.bashrc:

set -o vi

Per impostazione predefinita sei in modalità di inserimento; colpisci la fuga e puoi muoverti come puoi nella modalità normale Vim, quindi il movimento da Word è w o b, e anche i usuali tasti di movimento funzionano .

14
jches

Se si controlla Use option as meta key nella scheda della tastiera delle preferenze, i comandi di stile emacs predefiniti per forward-and-forward-Word e ⌥F (Alt+F) e ⌥B (Alt+B) rispettivamente.

Consiglierei di leggere da Bash a Z-Shell . Se vuoi aumentare la tua prodezza bash/zsh!

14
Matt

A partire da Mac OS X Lion 10.7, Mappe terminali Option-Left/Right Arrow a Esc-b/f di default, quindi questo è ora integrato per bash e altri programmi che usano queste associazioni di tasti compatibili con emacs.

12
Chris Page

In Bash, questi sono vincolati a Esc-B e Esc-F. Bash ha molte, molte più scorciatoie da tastiera; dare un'occhiata all'output di bind -p per vedere quali sono.

8
Andy Lynch

Sotto iterm2 's Preferenze> Profilo> Chiavi , fai clic sul + sotto Mappature dei tasti e registra una nuova scorciatoia. Per Azione , selezionare Send Escape Sequence e digitare b o f per rispettivamente avanti e indietro.

Quando ho provato a registrarne uno per (Ctrl+), Ho notato nel scorciatoia da tastiera che la freccia non ha mai mostrato. È venuto fuori che ho dovuto disabilitare le preferenze di sistema di default di Mac Preferenze di Sistema> Tastiera> Scorciatoie> Controllo Missione per far funzionare le cose, dato che sovrascriveranno le iterm2 scorciatoie predefinite. Dovrebbe essere vero anche per l'app terminale standard.

Keyboard system preferences

3
qix

Tieni premuto il tasto Opzione e fai clic nel punto in cui desideri spostare il cursore

2
Dan Alboteanu

Usa Modifica del testo naturale preset!

 enter image description here

Essenzialmente lega, tra le altre sequenze chiave, Option + LeftArrow alla sequenza ^[b e Option + RightArrow a ^[f

Funziona su pesci e bash, così come sul terminale psql.

0
Dziamid