copy of http://www.vim.org/scripts/script.php?script_id=52