Eu sei que isso funciona:
:%s/<string>//gn
Mas parece um pouco estranho usar o comando de substituição para contar, em vez de global.
Eu já usei um plugin para isso. O vim-indexed-search fornece uma mensagem na linha de comando, como:
2 of 32 matches
Para pesquisas usando /
Parece que não há outro caminho. De fato, esta é a maneira oficial descrita na documentação do Vim.
Veja esta pergunta do SO intitulada: Contando ocorrências no Vim sem marcar o buffer alterado e, por extensão, este parágrafo na documentação do Vim .
Como alternativa, também existe essa pergunta do SO, intitulada: Procure por string e obtenha contagem no editor vi , mas observe que esse método contará apenas linhas que não são correspondências reais; portanto, se você tiver várias correspondências por linha, não obterá uma contagem correta.