17

Я ищу настройку, которая сделает так, чтобы, когда я нажимал стрелку вверх, zsh показывал команды, которые я недавно редактировал. Суть в том, что я хочу только уникальные команды. В настоящее время, если я набираю echo "hello world" 50 раз, мне нужно нажать стрелку вверх 50 раз, чтобы получить команду, которую я использовал, перед вводом команды echo. Это раздражает, если не сказать больше.

Любые мысли о том, какие настройки мне нужно включить / отключить?

2 ответа2

18

HIST_IGNORE_ALL_DUPS выбросит все предыдущие совпадения команды, что может привести к путанице при использовании истории в качестве журнала того, что вы сделали позже.

Возможно, вам больше HIST_IGNORE_DUPS или даже HIST_FIND_NO_DUPS .

Смотреть man zshoptions | less -p History:

HIST_FIND_NO_DUPS: при поиске записей истории в редакторе строк не отображать дубликаты ранее найденной строки, даже если дубликаты не являются смежными.

HIST_IGNORE_ALL_DUPS: Если новая командная строка, добавляемая в список истории, дублирует более старую, более старая команда удаляется из списка (даже если это не предыдущее событие).

HIST_IGNORE_DUPS: не вводите командные строки в список истории, если они являются дубликатами предыдущего события.

3

Я не вижу никакого способа буквально сделать это, но если вы установите опцию HIST_IGNORE_ALL_DUPS , в истории останется только самая последняя версия команды, что даст вам тот же эффект.

Смотрите man zshoptions для деталей.

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