Avança no histórico de argumentos bash

6

Eu sei sobre Alt + . para mostrar o argumento anterior no bash.

Mas e se eu for além do argumento desejado (pressionando Alt + . várias vezes) e eu quero avançar história?

Existe uma combinação de teclas para isso?

    
por Matthias Braun 30.06.2016 / 22:11

1 resposta

5

A Alt - . executa a função readline yank-last-arg :

yank-last-arg (M-., M-_)

Insert the last argument to the previous command (the last word of the previous history entry). With a numeric argument, behave exactly like yank-nth-arg. Successive calls to yank-last-arg move back through the history list, inserting the last word (or the word specified by the argument to the first call) of each line in turn. Any numeric argument supplied to these successive calls determines the direction to move through the history. A negative argument switches the direction through the history (back or forward). The history expansion facilities are used to extract the last word, as if the "!$" history expansion had been specified.

Então, para reverter seu significado, é preciso fornecer um argumento negativo a ele. Isso pode ser feito por meio de outras funções: digit-argument ou universal-argument . O primeiro é mais fácil de usar porque já está vinculado a Alt - [[: digit:]] e Alt - - para argumentos negativos.

Então, para voltar no histórico, execute Alt - . . Para avançar, execute Alt - - Alt - . e repita com apenas Alt - . . Para voltar atrás, mude novamente de direção com Alt - - Alt - . .

    
por 30.06.2016 / 23:50