Я с удовольствием пользуюсь zsh
уже некоторое время, и меня вполне устраивают мои настройки истории:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Но часто случается так, что мне нужно использовать определенные команды внутри определенных каталогов. Например, когда я нахожусь, ~/my_project
я обычно вызываю make target1 && ./run1
, но когда я нахожусь, ~/second_project
я обычно нуждаюсь make target2 && cat foobar | ./run2
.
То есть: разные каталоги, но похожие команды.
Итак, я обычно cd ~/my_project
и печатаю, make
а затем ищу в истории, пока не найду то, что мне нужно. Но если случится, что я работал second_project
, при поиске в истории я найду некоторые команды, которые мне не нужны.
Итак, мой вопрос: существует ли для zsh плагин / настройка / что-то такое, что при поиске в истории команды, вызываемые в текущем каталоге, отображаются первыми?
В идеале после каждой команды будет отображаться любая другая команда истории совпадений, в которой можно указать максимальное количество приоритетных элементов.
Я бы попытался написать что-то подобное самостоятельно, но я все еще не знаю, как писать собственные плагины zsh, как обращаться с историей и так далее.