Como tornar o histórico bash sensível a prefixos?

8

Como posso aumentar / diminuir o bash para exibir o último comando que começou com o prefixo que eu já inseri?

Por exemplo,

$ ls foo
$ echo hello
$ ls <UP_ARROW>

Clicar em UP depois de digitar ls deve exibir "ls foo" e não "echo hello"

    
por ripper234 27.05.2011 / 17:57

1 resposta

11

Algumas possibilidades:

  1. Ligue os comandos history-search-backward/forward . Eu acredito que isso é o mais parecido com o que você quer:

    bind '"\e[A":history-search-backward'
    bind '"\e[B":history-search-forward'
    
  2. Use o histórico i-search. Isso provavelmente está ligado a ^R . Em uma linha vazia, ^Rls<space> o levará de volta a ls foo , então ^R o levará para o último comando ls (ou outro comando com ls em algum lugar na linha) antes de ls foo , etc ...

  3. Vincule o comando magic-space : bind SPACE:magic-space . Em seguida, digite (em uma linha vazia) !ls<space> e readline executará a substituição do histórico automaticamente, deixando-o com ls foo .

por 27.05.2011 / 18:57