有办法在Vim中移动文件吗?我在Vim中打开了一个文件foo/bar.txt。我知道2种移动这个文件的方法:
第一种解决办法:
:bd bar.txt删除缓冲区mv foo/bar.txt foo/bar2.txt在shell上执行移动:e foo/bar2.txt加载vim中的文件第二种解决办法:
但这两种解决方案令人尴尬。我知道,有一个插件可以重命名文件维恩,但是难道没有一种Vim方式来执行这样的基本功能吗?
发布于 2012-06-04 16:17:59
没有原子的方法来移动这样的文件,但是这应该是接近的:
function! MoveFile(newspec)
let old = expand('%')
" could be improved:
if (old == a:newspec)
return 0
endif
exe 'sav' fnameescape(a:newspec)
call delete(old)
endfunction
command! -nargs=1 -complete=file -bar MoveFile call MoveFile('<args>')现在你可以说:
:MoveFile file2.txt将名称重命名为file2.txt
:MoveFile %.0将file2.txt移动到file2.txt.0
发布于 2012-11-21 17:32:07
还可以使用netrw (默认文件资源管理器)重命名功能。
:E打开网络/ (例如/bar.txt)搜索该文件。R。然后将提示您输入一个新的filepath。当输入文件时,点击<CR><CR>打开它虽然这个解决方案可能不像使用vim-e气那么快,但它确实允许您在重命名文件时看到项目的结构。这也将允许您一次移动多个文件。
要进一步阅读,请运行:help netrw-move
发布于 2012-06-04 16:23:13
如果您在bar.txt缓冲区中:
:w bar2.txt
:!rm bar.txt如果bar2.txt已经存在于当前目录中,请使用:w!。
https://stackoverflow.com/questions/10884520
复制相似问题