Vim:移动文件?

时间:2011-05-19 20:11:17

标签: vim

目前,如果我正在编辑文件并且我决定要重命名它,我会使用:

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

要重命名文件,请打开新文件,然后删除旧缓冲区。

是否有更简单的方法来重命名文件而不留下旧的缓冲区?

(我意识到我也可以使用:sav,但我需要:bp几次才能找到上一个缓冲区:bd,然后:bn回到新的缓冲区)

3 个答案:

答案 0 :(得分:3)

我认为您可能正在寻找this插件。

这是一个小插件:saveas并删除旧文件。

答案 1 :(得分: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

答案 2 :(得分:0)

您还可以在vim资源管理器中重命名文件,然后移至要重命名的文件并按:

R

就是这样:

  1. 浏览:E
  2. 下移到文件j或搜索文件模式/
  3. 重命名R
  4. 打开新文件名<CR>(输入)。

此类型是否更短取决于您目录中的文件数。

This answer on vi.stackexchange建议使用tpope/vim-eunuch插件中的:Move

:Move:同时重命名缓冲区和磁盘上的文件。