Para o texto comum mais longo, use
:set completeopt+=longest
Para evitar mostrar outras correspondências:
:set completeopt-=menu
<C-N> / <C-P> ainda mostrará as outras correspondências; aprenda a usar <C-E> para parar a conclusão e voltar ao texto originalmente digitado.
Para o mapeamento:
function s:EnableCompleteMenu()
set completeopt+=menu
return ''
endfunction
inoremap <expr> <SID>EnableCompleteMenu s:EnableCompleteMenu()
inoremap <script> <C-Space> <SID>EnableCompleteMenu<C-N>
Você também pode usar <C-P> para exibir correspondências na outra direção. Observe que o mapeamento <C-Space> provavelmente funciona apenas no GVIM. Se você quiser usar isso junto com os comandos acima, você precisa escrever um empacotador similar (com :set completeopt-=menu ) e sobrecarregar os outros comandos de conclusão ( <C-N> , etc.) com ele.