vimで現在開いてるファイルのファイル名を変更する
プログラム書いてて、今編集中のファイルの名前を変更したい時、これまでは
- ctrl+zでvimを一旦停止して該当のディレクトリまで移動、mvコマンドでファイル名を変更後、fgでvimに復帰
- :terminalでターミナル開いて、該当ディレクトリまで移動後、mvコマンドでファイル名を変更
とかやってたんですが、ディレクトリ移動がかったるいので、最近は.vimrcあるいはinit.vimに以下のvim scriptを書くようにしました。
" --------------- " rename file script " --------------- function! RenameFile(...) let old_name = expand('%') if a:0 >= 1 let default_name = expand("%:h") . '/' . a:1 else let default_name = expand('%') endif let new_name = input('New current file name: ', default_name) if filereadable(new_name) redraw! echo "Can't rename : Already exists new filename." return end if new_name != '' && new_name != old_name exec ':f ' . new_name . '|call delete(expand("#"))' exec ':saveas ' . new_name redraw! endif endfunction command! -nargs=? Rename call RenameFile(<f-args>)
これで:Renameと打ち込むと新しいファイル名を聞かれるので、打ち込めばファイル名が変わります。
vimは不満があれば、自分好みに変更できるのが、やっぱいいですよね。