vim のコマンドモードでの履歴検索は、例えば zsh の C-r によるインクリメンタルサーチみたいなことができません(私の知る限りでは)。
vim には cmdline-window というのがあって、このウィンドウで C-x C-l で行補完を使うなどすれば部分的には似たようなことができるのですが、この補完は履歴の先頭にしかマッチせず、zsh 的な履歴検索とは同じように使えません。
ということを某 @khiker 氏に話していたら「それは残念」と突っ込まれたので、vim の威信を示すべくしょうがないから履歴検索プラグインを作ってみた、というのが今回のお話です。
今回作成した vim-histsearch プラグインはここにあります。使用するにはこれをダウンロードしてインストールしてください。
このプラグインので実現できるのは純粋に単一の機能で、cmdline-window に表示されている行(履歴)の中から特定のパターンにマッチする行を補完候補としてポップアップメニューに表示するだけです。なので実装も 100 行程度しかありません。
このプラグインをインストールしてから、vim を起動して q; とタイプしてみてください。そうすると以下のように cmdline-window が開いた上で、ポップアップが表示されると思います。

このポップアップが開いた状態で、例えば tags と入力してみましょう。そうすると、以下のように tags を含む履歴のみがポップアップに表示されるようになります。もしも目的の履歴が見つかれば、C-n/C-p や C-j/C-k で実行したい項目まで移動して Enter をタイプしてください。

これと同様のことが、q/ や q? で開ける cmdline-window においても同様に行えます。デフォルトではそれぞれ q' および q" にマップしてあります。
また、この機能は cmdline-window を開いた後でも使用することができます。例えば q: で cmdline-window を開いたあとでインサートモードにした上で、C-k をタイプすると q; を使用した場合と同様のポップアップが表示されます。
履歴に目的のものがなかった場合には、C-e をタイプすることで履歴検索モードを抜けることができます。このとき、それまでに絞り込みのためにタイプしたテキストは入力された状態で戻ります。
履歴の絞り込みには正規表現を使うことができます。使用可能な正規表現は通常の 'magic' の値に従ったパターンです。本当は glob パターンマッチ的な動作にしたかったのですが、vim には glob パターンで文字列のマッチングを行えるような関数がなさそうだったので、面倒だったので諦めました。
ただし部分的に glob パターンをシミュレートするために、デフォルトのキーマッピングでは '*' の入力を '.*' に変換するような対策が入っています。通常の絞り込みで使いそうなのはワイルドカードくらいだと思うので、おそらくこれは便利な方に働くと思います。

ちなみに、インサートモードのキーマッピングはポップアップが絡むといろいろ好みが分かれるところなので、デフォルトが気にいらなければ g:histsearch_no_mappings を設定した上で自前でキーマッピングを設定してください。