在Vim中重命名当前文件

如何在Vim中重命名当前文件? html

例如: shell

  • 我正在编辑person.html_erb_spec.rb
  • 我想将其重命名为person.haml_spec.rb
  • 我想继续编辑person.haml_spec.rb

我要如何优雅地作到这一点? vim


#1楼

我建议:Rename为此从tpope的太监那里更名。 浏览器

它还包括许多其余方便的命令。 编辑器

当前,重命名命令的定义以下(请检查存储库中是否有任何更新!): spa

command! -bar -nargs=1 -bang -complete=file Rename :
  \ let s:file = expand('%:p') |
  \ setlocal modified |
  \ keepalt saveas<bang> <args> |
  \ if s:file !=# expand('%:p') |
  \   call delete(s:file) |
  \ endif |
  \ unlet s:file

#2楼

这个小脚本并不完美(您必须按下额外的回车键),但它能够完成工做。 .net

function Rename()
  let new_file_name = input('New filename: ')
  let full_path_current_file = expand("%:p")
  let new_full_path = expand("%:p:h")."/".new_file_name
  bd    
  execute "!mv ".full_path_current_file." ".new_full_path
  execute "e ".new_full_path
endfunction                                                                                                                                                                                                                                 

command! Rename :call Rename()
nmap RN :Rename<CR>

#3楼

有一个小插件 ,让您执行此操做。 插件


#4楼

我不知道这是不是“最简单”的方法,可是假设您已经保存了文件(:w),我将调用shell(:sh)并执行一个简单的cp foo foo foo.bak返回编辑器使用Ctrl-D / Exit。 此连接上的vi编辑器命令的有用列表 code


#5楼

该命令称为:saveas ,但不幸的是它不会删除您的旧文件,您必须手动执行此操做。 有关更多信息,请参见:help saveashtm

编辑:

大多数vim安装都有集成的文件浏览器,您能够将其用于此类操做。 在命令模式下尝试:Explore (我实际上会将其映射到功能键,这很是方便)。 例如,您能够使用R重命名文件或使用D删除文件。 可是在资源管理器中按<F1>将为您提供更好的概览。

相关文章
相关标签/搜索