편집중인 파일의 이름을 바꾸려면 어떻게해야합니까?


답변:


34

을 사용하여 파일을 다른 이름으로 저장할 수 :w있습니다. 그러나이 작업은 이전 파일을 제거하지 않으며 'old'파일은 버퍼에 남아 있으므로 변경 사항이 'old'파일에 적용됩니다.

:saveas새 파일을 저장하고 새 버퍼에서 엽니 다. 그러나 이전 파일은 삭제하지 않습니다.

내가 사용 tpope / VIM-eneuch을:Move파일을 저장합니다.

: 이동 : 버퍼와 디스크의 파일 이름을 동시에 바꿉니다.


하나의 단점 :w또는 :saveas스크립트를 편집 한 경우는 실행 권한을 잃을 것입니다. netrw이름을 바꾸면 권한이 유지됩니다.
wisbucky

10

Netrw로 드롭 하여 파일 이름을 바꿀 수 있습니다.

편집중인 파일이 현재 디렉토리에 있으면 다음을 수행하십시오.

:edit .

파일을 탐색하고을 누른 R다음 이름을 변경하십시오. Enter파일을 편집하려면 누릅니다 .

주의 사항 : 원래 버퍼는 버퍼 목록에 남아 있습니다. 스위치로 전환하면 비어 있습니다.

편집중인 파일이 다른 디렉토리에있는 경우 다음을 사용하여 파일 디렉토리로 변경할 수 있습니다.

:cd %:p:h

전체 Vim 세션의 디렉토리를 변경하지 않고 현재 버퍼의 디렉토리 만 변경하려면 대신 다음을 수행하십시오.

:lcd %:p:h

2
똑바로 입력해도 효과가있는 :edit %:p:h것 같습니다.
Mladen Jablanović가

:E또한 netrw
wisbucky

6

몇 년 동안 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>

3

:MoveOrangTux가 말했듯 이 가장 좋은 방법은을 사용하는 것입니다 . 완벽을 기하기 위해 !명령 모드에서 bang ( )을 사용하여 vi 편집기에서 터미널 명령을 수행 할 수도 있습니다.

:!mv {current_file} {new_name}
:e {new_name}

그러나이 방법은 버퍼 목록에서 이전 버퍼를 제거하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.