adding new stuff
This commit is contained in:
parent
f84d7183aa
commit
9ef8a96f9a
1580 changed files with 0 additions and 0 deletions
64
plugins/Rename.vim
Normal file
64
plugins/Rename.vim
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
" Rename.vim - Rename a buffer within Vim and on the disk
|
||||
"
|
||||
" Copyright June 2007-2011 by Christian J. Robinson <heptite@gmail.com>
|
||||
"
|
||||
" Distributed under the terms of the Vim license. See ":help license".
|
||||
"
|
||||
" Usage:
|
||||
"
|
||||
" :Rename[!] {newname}
|
||||
|
||||
command! -nargs=* -complete=file -bang Rename call Rename(<q-args>, '<bang>')
|
||||
|
||||
function! Rename(name, bang)
|
||||
let l:name = a:name
|
||||
let l:oldfile = expand('%:p')
|
||||
|
||||
if bufexists(fnamemodify(l:name, ':p'))
|
||||
if (a:bang ==# '!')
|
||||
silent exe bufnr(fnamemodify(l:name, ':p')) . 'bwipe!'
|
||||
else
|
||||
echohl ErrorMsg
|
||||
echomsg 'A buffer with that name already exists (use ! to override).'
|
||||
echohl None
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
|
||||
let l:status = 1
|
||||
|
||||
let v:errmsg = ''
|
||||
silent! exe 'saveas' . a:bang . ' ' . l:name
|
||||
|
||||
if v:errmsg =~# '^$\|^E329'
|
||||
let l:lastbufnr = bufnr('$')
|
||||
|
||||
if expand('%:p') !=# l:oldfile && filewritable(expand('%:p'))
|
||||
if fnamemodify(bufname(l:lastbufnr), ':p') ==# l:oldfile
|
||||
silent exe l:lastbufnr . 'bwipe!'
|
||||
else
|
||||
echohl ErrorMsg
|
||||
echomsg 'Could not wipe out the old buffer for some reason.'
|
||||
echohl None
|
||||
let l:status = 0
|
||||
endif
|
||||
|
||||
if delete(l:oldfile) != 0
|
||||
echohl ErrorMsg
|
||||
echomsg 'Could not delete the old file: ' . l:oldfile
|
||||
echohl None
|
||||
let l:status = 0
|
||||
endif
|
||||
else
|
||||
echohl ErrorMsg
|
||||
echomsg 'Rename failed for some reason.'
|
||||
echohl None
|
||||
let l:status = 0
|
||||
endif
|
||||
else
|
||||
echoerr v:errmsg
|
||||
let l:status = 0
|
||||
endif
|
||||
|
||||
return l:status
|
||||
endfunction
|
||||
Loading…
Add table
Add a link
Reference in a new issue