Terminal Ubuntu, Como eu "tabulo" (preenchimento automático) de um nome de arquivo no estilo cmd da janela (opções de ciclo)?

13

Basicamente, eu quero mudar o terminal do ubuntu funcionalmente, para que eu possa percorrer todas as opções quando aba (na linha da linha cmd) e não listar as opções como é por padrão?

Estou usando o bash, ubuntu 9.04. Vejo algumas possibilidades em ".bashrc", mas deve haver alguém por aí que já resolveu esse problema?

Daniel T. Magnusson
fonte
você sabe que, se pressionar a tecla Tab duas vezes, obtém uma lista de todas as conclusões possíveis, não é?
vava
@ava: Você está descrevendo o comando de possíveis conclusões do bash, que geralmente é o comportamento padrão. A questão é como substituir esse comportamento pelo comportamento fornecido pelo comando menu-complete do bash.
Las3rjock 12/09/09
@ las3rjock, eu sei, é por isso que deixei um comentário, não uma resposta. É possível que o OP não conheça esse recurso, pois é muito melhor que o modo de ciclismo.
vava
@vava: O OP descreve o comportamento das conclusões possíveis e afirma que ele deseja substituí-lo pelo comportamento de conclusão do menu.
las3rjock
@ava Eu sei como o terminal funciona, e quero mudar esse comportamento muito irritante.
Daniel T. Magnusson

Respostas:

16

De acordo com os comentários nesta página , colocar

bind '"\t":menu-complete'

no seu .bashrcdeve habilitar a conclusão da guia cíclica.

Consulte a seção 8.4.6 do Manual de Referência do Bash para obter mais informações.

las3rjock
fonte
Obrigado, muito bom encontrar! - Adorei o comentário nessa página "Levei anos para descobrir que o bash suporta o preenchimento cíclico de guias" - hah, o superusuário vence!
Daniel T. Magnusson
Obrigado! Uma vez implementado, existe uma combinação de teclas de substituição para usar a maneira antiga momentaneamente? Shift + TAB, por exemplo.
Ás
0

Algo que me salvou a vida é ter um ciclo festivo entre as possibilidades, em vez de mostrar uma lista idiota.

Como o bash está usando readlinepara sua conclusão automática, adicione as seguintes linhas a~/.inputrc

Quando estiver satisfeito e tenha testado completamente abaixo solução para alguns dias / semanas, cortar e colar (não copie!) As mesmas configurações a partir ~/.inputrcde /etc/inputrcque contém as configurações do sistema, tornando esta disponível para todos os usuários em seu sistema (incluindo convidado).

O 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

então exitseu terminal (ou terminal remoto como massa de vidraceiro) e abra-o novamente ...

Exemplos:

  1. Quando você tem 3 arquivos: file1, file2e file3e você digitar:

    e fTabTabTab

    ele percorrerá:

    e file1
    e file2
    e file3

    e quando você quiser voltar, basta pressionar Shift+Tab

  2. Quando você digita:

    very-complicated-command with lots of command line parameters

    e da próxima vez que você precisar do mesmo comando, basta digitar:

    very

    e digitará para você:

    very-complicated-command with lots of command line parameters

Isso economizará uma tonelada de tempo no bash! ;-)

Fonte

Fabby
fonte