2011-05-19 80 views
1

目前,如果我編輯一個文件,我決定,我要重命名它,我用:Vim:移動文件?

 
:!mv % new.py 
:new new.py 
:bd 

要重命名文件,打開新的文件,然後刪除舊的緩衝區。

有沒有一種更簡單的方法來重命名文件,而不必離開舊的緩衝區?

(我知道我還可以使用:sav,但後來我需要:bp幾次找到以前的緩衝區,:bd,然後:bn回新的緩衝區)

+0

調用這個你不必使用BP找到舊緩衝區。您可以使用:ls列出緩衝區,找到該數字,然後使用:bdx其中x是要刪除的緩衝區的編號。 – Tyler 2011-05-19 22:21:34

+0

是的。不過,我通常打開了足夠多的緩衝區,因此比找到列表中的文件要容易幾次訪問''和''(綁定到':bp'和':bn')。 – 2011-05-19 23:10:02

回答

3

我想你可能是尋找this插件。

這是一個小插件:saveas和刪除舊文件。

2

我認爲添加一個插件比您要找的要複雜得多。您可以使用函數將此功能綁定到新命令。

function! s:movefunction(arg) 
    let oldnum = bufnr("%") 
    let newname = a:arg 
    execute "!mv %" . " " . newname 
    exe "new " . newname 
    exe "bd" . oldnum 
endfunction 

command! -nargs=* Newmv call s:movefunction('<args>') 

加入這你的.vimrc後,您就可以通過做

:Newmv new_file_name.py