zsh, a seta para cima apenas repete comandos únicos?

17

Estou procurando uma configuração que faça com que, quando eu clicar na seta para cima, zsh mostre os comandos que eu editei recentemente. O problema é que eu só quero comandos exclusivos . Atualmente, se eu digitar echo "hello world" 50 vezes, eu tenho que pressionar a seta para cima 50 vezes para obter o comando que eu usei antes digitando o comando echo. Isso é irritante para dizer o mínimo.

Alguma ideia de qual configuração eu preciso ativar / desativar?

    
por Lee Olayvar 20.04.2011 / 03:50

2 respostas

18

HIST_IGNORE_ALL_DUPS eliminará todas as correspondências anteriores do comando, o que pode ser confuso ao usar o histórico como um registro do que você fez posteriormente.

Um ajuste mais próximo das suas necessidades é provavelmente a opção HIST_IGNORE_DUPS ou mesmo a HIST_FIND_NO_DUPS .

Veja man zshoptions | less -p History :

HIST_FIND_NO_DUPS: When searching for history entries in the line editor, do not display duplicates of a line previously found, even if the duplicates are not contiguous.

HIST_IGNORE_ALL_DUPS: If a new command line being added to the history list duplicates an older one, the older command is removed from the list (even if it is not the previous event).

HIST_IGNORE_DUPS: Do not enter command lines into the history list if they are duplicates of the previous event.

    
por 20.04.2011 / 21:28
3

Não consigo ver nenhuma maneira de fazer isso apenas literalmente, mas se você definir a opção HIST_IGNORE_ALL_DUPS , apenas a versão mais recente de um comando será mantida no histórico, fornecendo o mesmo efeito.

Veja man zshoptions para detalhes.

    
por 20.04.2011 / 03:57