編集中のファイルの名前をVim内から変更することはできますか?現在、私がしていることはVimを終了し、ファイルの名前を変更し、Vimから再び開きます。
編集中のファイルの名前をVim内から変更することはできますか?現在、私がしていることはVimを終了し、ファイルの名前を変更し、Vimから再び開きます。
回答:
を使用して、別の名前でファイルを保存できます:w
。ただし、この操作では古いファイルは削除されず、「古い」ファイルはバッファに残るため、変更は「古い」ファイルに適用されます。
:saveas
新しいファイルを保存し、新しいバッファで開きます。ただし、古いファイルは削除されません。
ファイルにはtpope / vim-eneuchを:Move
使用しています。
:移動:ディスク上のバッファとファイルの名前を同時に変更します。
:w
かは:saveas
、スクリプトを編集していた場合には、実行権限を失うことになるということです。netrw
名前を変更しても権限は保持されます。
Netrwにドロップして、そこでファイルの名前を変更できます。
編集しているファイルが現在のディレクトリにある場合は、次を実行します。
:edit .
ファイルに移動し、を押してR、名前を変更します。を押しEnterてファイルを編集します。
ただし、注意が必要です。元のバッファーはバッファーのリストに残ります。切り替えると空になります。
編集しているファイルが別のディレクトリにある場合は、次のコマンドでファイルのディレクトリに変更できます。
:cd %:p:h
Vimセッション全体のディレクトリを変更せず、現在のバッファのみを変更する場合は、代わりに次の操作を実行できます。
:lcd %:p:h
:edit %:p:h
も機能するようです。
:E
また、netrw
私は長年、このためにRename2プラグインを使用しています。現在のバッファとディスク上のファイルの両方の名前を変更します。
:Rename {newname}
編集:私はこれ.vimrc
をgithubのファイルに見つけました:
function! RenameFile()
let old_name = expand('%')
let new_name = input('New file name: ', expand('%'), 'file')
if new_name != '' && new_name != old_name
exec ':saveas ' . new_name
exec ':silent !rm ' . old_name
redraw!
endif
endfunction
map <leader>n :call RenameFile()<cr>