Terminale Ubuntu, come posso "tab" (completamento automatico) un nome di file in stile finestra cmd (opzioni ciclo)?


13

Fondamentalmente voglio cambiare il terminale Ubuntu in modo funzionale, in modo da poter scorrere tutte le opzioni quando io tab (sulla riga della riga cmd) e non elencare le opzioni come è di default?

Sto usando bash, Ubuntu 9.04. Vedo alcune possibilità in ".bashrc", ma ci deve essere qualcuno là fuori che abbia già risolto questo problema?


sai che se premi due volte Tab hai un elenco di tutti i possibili completamenti, vero?
vava,

@vava: stai descrivendo il comando possibile-completamenti di bash, che di solito è il comportamento predefinito. La domanda è come sostituire questo comportamento con quello fornito dal comando menu-complete di bash.
las3rjock,

@ las3rjock, lo so, ecco perché ho lasciato un commento, non una risposta. È possibile che OP non sia a conoscenza di tale funzione poiché è molto meglio della modalità ciclismo.
vava,

@vava: l'OP descrive il comportamento dei possibili completamenti e afferma che desidera sostituirlo con il comportamento di completamento del menu.
las3rjock,

@vava so come funziona il terminale e voglio cambiare questo comportamento così fastidioso.
Daniel T. Magnusson,

Risposte:


16

Secondo i commenti su questa pagina , mettendo

bind '"\t":menu-complete'

nel tuo .bashrcdovrebbe abilitare il completamento della scheda ciclica.

Vedere la sezione 8.4.6 del Manuale di riferimento di Bash per ulteriori informazioni.


Grazie, bella scoperta! - Adoro il commento su quella pagina "Mi ci sono voluti anni per scoprire che bash supporta il completamento ciclico delle schede" - hah, il superutente vince!
Daniel T. Magnusson,

Grazie! Una volta implementato, esiste una combinazione di tasti di sostituzione per usare momentaneamente la vecchia maniera? Maiusc + TAB, ad esempio.
Ace

0

Qualcosa che mi salva la vita è avere un ciclo bash attraverso le possibilità invece di mostrare un elenco stupido.

Mentre bash sta usando readlineper il suo completamento automatico, aggiungi le seguenti righe a~/.inputrc

Una volta che sei soddisfatto e hanno accuratamente testato sotto soluzione per un paio di giorni / settimane, taglia e incolla (non copiare!) Le stesse impostazioni da ~/.inputrca /etc/inputrcche contiene le impostazioni a livello di sistema, rendendo questo a disposizione di tutti gli utenti sul proprio sistema (incluso ospite).

Il codez:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

quindi il exittuo terminale (o terminale remoto come stucco) e aprilo di nuovo ...

Esempi:

  1. Quando si dispone di 3 file: file1, file2ed file3e digitate:

    e fTabTabTab

    scorrerà attraverso:

    e file1
    e file2
    e file3

    e quando vuoi tornare indietro, premi Shift+Tab

  2. Quando digiti:

    very-complicated-command with lots of command line parameters

    e la prossima volta che hai bisogno dello stesso comando, devi solo digitare:

    very

    e digiterà per te:

    very-complicated-command with lots of command line parameters

Questo ti farà risparmiare un sacco di tempo in bash! ;-)

fonte

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.