I store a separate bash history per directory, in a tree under ~/.bash_history.d. Each time I change directories, my shell flushes its history to that directory's histfile, and loads in the histfile for the new directory.
It may sound weird, but look at this way: Usually I cd to a "place" to work on some particular project. When a cd to some project I haven't touched in a while, it's very useful to have, in 'history', a context – the usual commands I use to start up that server, the last few files I fiddled with, etc.
(You can skip the stuff wrapping virtualenv, obviously.)
Basically just define a function that does the write, set HISTFILE, read, and then elsewhere alias cd=mycd.
If anyone gives it a try, I'd love to hear how it works! I think it needs some tweaks -- for example, multiple terminals in the same directory are probably clobbering each other -- looks like this 'shopt -s histappend' would help with that.
It may sound weird, but look at this way: Usually I cd to a "place" to work on some particular project. When a cd to some project I haven't touched in a while, it's very useful to have, in 'history', a context – the usual commands I use to start up that server, the last few files I fiddled with, etc.
Anyone else do something like this?