2012-04-18 11 views
9

Un sacco di volte userò Ctrl-R per la ricerca inversa e digitherò qualche lettera. Bash salta su centinaia di righe e io sono nel mezzo di comandi che stavo usando una settimana fa.Come scorrere rapidamente fino all'ultimo/fine della cronologia dei comandi in bash?

C'è una scorciatoia per tornare indietro ai comandi più recenti che avevo digitato?

Edit: dopo aver testato fuori su un server CentOS e Mac OS X, sembra che questo accada solo su OS X.

risposta

3

Ho lottato con questo stesso problema.

È possibile risolvere questo abortendo con ctrl-c. Sia che ti trovi nel mezzo di una ricerca inversa o scorrendo la cronologia con le frecce, l'interruzione ti riporta a un prompt con lo scorrimento della cronologia subito dopo l'ultimo comando.

UPDATE

Ecco un bel trucco che ho appena saputo. Bash e molti altri programmi usano Readline per l'interpretazione da riga di comando. I collegamenti chiave per Readline possono essere configurati in un file .inputrc o con il comando bind. I binding possono utilizzare alcune funzioni fornite da Readline. Ad esempio, io uso Bash in modalità vi ma mi piace ancora di utilizzare in stile Emacs Ctrl-A in modo che ho questa linea nel mio file .bashrc:

bind '\ Ca: inizio-of-line'

Per elencare tutte le funzioni di Readline disponibili: bind -l

Tra le funzioni è end-of-history. La funzione fa come suggerisce il nome. La differenza tra questo approccio e l'uso del comando di interruzione è che questo ti mantiene sullo stesso prompt.

0

Forse non è esattamente ciò che si vuole, ma si può risolvere il tuo personaggio compilato male (s) usando backspace quando sei nella modalità CTRL-r (reverse-i-search).

+0

Backspace mi consente di correggerlo ma il cursore di ricerca è ancora 100+ comandi. – volni

3

Se si utilizza libreadline, Alt-> (o Meta->). Ulteriori informazioni su Readline shortcuts o ricerca di Comandi per la manipolazione della cronologia nella pagina man.

+1

Questo non funziona per me utilizzando iTerm2 su Mac OS X Lion. – volni

+0

Dipende dalla shell utilizzata e se ha il supporto per libreadline o meno. Mai usato iTerm2 da solo, controlla se ha alcune impostazioni per definire il tasto Meta. A proposito, se si utilizza OS X, queste scorciatoie funzionano bene in Terminal. –

0

Si può desiderare di provare la cronologia "suggerisci casella" HSTR. Legge la cronologia di bash e consente una navigazione e un filtro rapidi: è possibile vedere il contesto di voci simili della cronologia. Una volta selezionata una voce della cronologia, può essere modificata sulla riga di comando.

0

Su Mac, prova command + . Funziona per me. Stavo cercando alt+. e alt+shift+., non funziona per me. E poi trovato command + . effettivamente funziona

Problemi correlati