A vim plugin located at: http://www.vim.org/scripts/script.php?script_id=182
Use your tab key to do all your completion in insert mode! The script remembers the last completion type, and applies that.