Vim 내에서 편집중인 파일의 이름을 바꿀 수 있습니까? 현재 내가하는 일은 Vim을 종료하고 파일 이름을 바꾸고 Vim에서 다시 엽니 다.
Vim 내에서 편집중인 파일의 이름을 바꿀 수 있습니까? 현재 내가하는 일은 Vim을 종료하고 파일 이름을 바꾸고 Vim에서 다시 엽니 다.
답변:
을 사용하여 파일을 다른 이름으로 저장할 수 :w
있습니다. 그러나이 작업은 이전 파일을 제거하지 않으며 'old'파일은 버퍼에 남아 있으므로 변경 사항이 'old'파일에 적용됩니다.
: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>