I am happily using zsh since a while now, and I am quite satisfied with my history settings, which are:
# 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 But it happens often that I need to use specific commands inside some specific directories. For example, when I am in ~/my_project I usually invoke make target1 && ./run1, but when I am in ~/second_project I usually need make target2 && cat foobar | ./run2.
That is: different directories, but similar commands.
So, I usually cd ~/my_project and type make and then search backward in the history until I find what I need. But if it happen that I worked in second_project, when searching the history I will find some commands that I do not need.
So, my question: does a plugin/setting/something exist for zsh such that, when searching in history, commands invoked in the current directory are displayed first?
Ideally, every other matching history command will appear after those, optionally specifying a max number of priority elements.
I would try to write something like this by myself, but I still do not know how to write custom zsh plugins, how to handle history and so on.