如何在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>
將爲您提供更好的概覽。