" Rename2.vim - Rename a buffer within Vim and on disk " " Copyright July 2009 by Manni Heumann " " based on Rename.vim " Copyright June 2007 by Christian J. Robinson " " Distributed under the terms of the Vim license. See ":help license". " " Usage: " " :Rename[!] {newname} command! -nargs=* -complete=file -bang Rename :call Rename("", "") function! Rename(name, bang) let l:curfile = expand("%:p") let l:curfilepath = expand("%:p:h") let l:newname = l:curfilepath . "/" . a:name let v:errmsg = "" silent! exe "saveas" . a:bang . " " . l:newname if v:errmsg =~# '^$\|^E329' if expand("%:p") !=# l:curfile && filewritable(expand("%:p")) silent exe "bwipe! " . l:curfile if delete(l:curfile) echoerr "Could not delete " . l:curfile endif endif else echoerr v:errmsg endif endfunction