如何在Vim中重命名当前文件? html
例如: shell
person.html_erb_spec.rb
person.haml_spec.rb
person.haml_spec.rb
我要如何优雅地作到这一点? vim
我建议: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
这个小脚本并不完美(您必须按下额外的回车键),但它能够完成工做。 .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>
有一个小插件 ,让您执行此操做。 插件
我不知道这是不是“最简单”的方法,可是假设您已经保存了文件(:w),我将调用shell(:sh)并执行一个简单的cp foo foo foo.bak返回编辑器使用Ctrl-D / Exit。 此连接上的vi编辑器命令的有用列表 code
该命令称为:saveas
,但不幸的是它不会删除您的旧文件,您必须手动执行此操做。 有关更多信息,请参见:help saveas
。 htm
编辑:
大多数vim安装都有集成的文件浏览器,您能够将其用于此类操做。 在命令模式下尝试:Explore
(我实际上会将其映射到功能键,这很是方便)。 例如,您能够使用R
重命名文件或使用D
删除文件。 可是在资源管理器中按<F1>
将为您提供更好的概览。