При отображении номера истории следующей команды в приглашении zsh (у меня версия 5.0.2) он неожиданно увеличивается после игнорирования histignorespace и histnostore (а затем только "исправляет" себя после следующей команды), но работает как я ожидал после игнорируемых команд histignoreddups .

Есть ли веская причина для различий в поведении? Могу ли я сделать так, чтобы приглашение последовательно отображало событие истории для следующей (не игнорируемой) команды, даже если оно следует игнорируемой команде "интервал" или команде history ?

histignorespace удивляет меня:

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

Так же как и с помощью histnostore (также я подумал, что это странно, непосредственный вызов включает в себя):

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

Но histignoredups работает так, как я ожидал:

% PROMPT='%! >' zsh --no-rcs --histignoredups
1 >true repeated
2 >true repeated
2 >true two
3 >history
    1  true repeated
    2  true two

1 ответ1

0

Есть ли веская причина для различий в поведении?

Да. Z Shell ведет себя так, как описано в его руководстве:

Обратите внимание, что команда сохраняется во внутренней истории до тех пор, пока не будет введена следующая команда, прежде чем она исчезнет, что позволит вам на короткое время повторно использовать или редактировать строку.

Прочитайте руководство zshoptions для полной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .