O número do histórico do prompt do Zsh às vezes é incrementado após os comandos ignorados

0

Ao exibir o número do histórico do próximo comando no prompt do zsh (estou na versão 5.0.2), ele é incrementado inesperadamente após os comandos histignorespace e histnostore ignorados (e, em seguida, só se "corrige" após o comando próximo comando) mas funciona como eu esperaria após os comandos histignoreddups ignorados.

Existe uma boa razão para a diferença de comportamento? Posso fazer com que o prompt mostre consistentemente o evento histórico para o próximo comando (não ignorado), mesmo que ele esteja seguindo um comando "espaçado" ou history ignorado?

histignorespace me surpreende:

% PROMPT='%! >' zsh --no-rcs --histignorespace
1 > true ignore me
2 >true two
2 >history
    1  true two

Como o histnostore (também achei estranho a invocação imediata incluir a si mesmo):

% PROMPT='%! >' zsh --no-rcs --histnostore
1 >history
    1  history
2 >true two
2 >history
    1  true two

Mas histignoredups funciona como esperado:

% PROMPT='%! >' zsh --no-rcs --histignoredups
1 >true repeated
2 >true repeated
2 >true two
3 >history
    1  true repeated
    2  true two
    
por plnx 12.02.2015 / 20:03

1 resposta

0

Is there a good reason for the difference in behavior?

Sim. O Z Shell está se comportando conforme documentado em seu manual:

Note that the command lingers in the internal history until the next command is entered before it vanishes, allowing you to briefly reuse or edit the line.

Leia o manual zshoptions para obter informações completas.

    
por 12.02.2015 / 21:52