首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vim中移动文件

在Vim中移动文件
EN

Stack Overflow用户
提问于 2012-06-04 16:14:48
回答 3查看 16.8K关注 0票数 26

有办法在Vim中移动文件吗?我在Vim中打开了一个文件foo/bar.txt。我知道2种移动这个文件的方法:

第一种解决办法:

  1. :bd bar.txt删除缓冲区
  2. 使用mv foo/bar.txt foo/bar2.txt在shell上执行移动
  3. :e foo/bar2.txt加载vim中的文件

第二种解决办法:

  1. 关闭Vim所以所有缓冲区都关闭了。
  2. 在弹壳上进行移动..。
  3. 启动Vim并加载文件。

但这两种解决方案令人尴尬。我知道,有一个插件可以重命名文件维恩,但是难道没有一种Vim方式来执行这样的基本功能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-04 16:17:59

没有原子的方法来移动这样的文件,但是这应该是接近的:

代码语言:javascript
复制
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>')

现在你可以说:

代码语言:javascript
复制
:MoveFile file2.txt

将名称重命名为file2.txt

代码语言:javascript
复制
:MoveFile %.0

将file2.txt移动到file2.txt.0

票数 8
EN

Stack Overflow用户

发布于 2012-11-21 17:32:07

还可以使用netrw (默认文件资源管理器)重命名功能。

  1. :E打开网络
  2. 将光标移动到要重命名的文件行,在本例中为bar.txt。您可以使用h、j、k、l移动到所讨论的文件,或者可以使用/ (例如/bar.txt)搜索该文件。
  3. 点击R。然后将提示您输入一个新的filepath。当输入文件时,点击<CR>
  4. 将光标移动到新文件并使用<CR>打开它

虽然这个解决方案可能不像使用vim-e气那么快,但它确实允许您在重命名文件时看到项目的结构。这也将允许您一次移动多个文件。

要进一步阅读,请运行:help netrw-move

票数 48
EN

Stack Overflow用户

发布于 2012-06-04 16:23:13

如果您在bar.txt缓冲区中:

代码语言:javascript
复制
:w bar2.txt
:!rm bar.txt

如果bar2.txt已经存在于当前目录中,请使用:w!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10884520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档