[vim] Vim에서 현재 파일 이름 바꾸기

Vim에서 현재 파일의 이름을 바꾸려면 어떻게해야합니까?

예를 들면 다음과 같습니다.

  • 편집 중입니다 person.html_erb_spec.rb
  • 이름을 바꾸고 싶습니다 person.haml_spec.rb
  • 계속 편집하고 싶습니다 person.haml_spec.rb

우아하게이 작업을 수행하려면 어떻게해야합니까?



답변

이 작업을 수행 할 수 있는 작은 플러그인 이 있습니다.


답변

이 명령은 :saveas이지만 불행히도 이전 파일은 삭제되지 않으므로 수동으로 수행해야합니다. 자세한 내용은 참조하십시오 :help saveas.

편집하다:

대부분의 vim 설치에는 통합 파일 탐색기가 있으며 이러한 작업에 사용할 수 있습니다. :Explore명령 모드로 시도하십시오 (실제로 기능 키에 매핑하면 매우 편리합니다). 예를 들어 파일 이름을 바꾸 R거나 파일을 삭제할 수 있습니다 D. 그러나 <F1>탐색기를 누르면 더 나은 개요를 볼 수 있습니다.


답변

git을 사용하고 이미 tpope의 플러그인 fugitive.vim이있는 경우 간단히 다음을 수행하십시오.

:Gmove newname

이것은 :

  1. 디스크에서 파일 이름을 바꿉니다.
  2. git repo에서 파일 이름을 바꿉니다.
  3. 파일을 현재 버퍼로 다시로드하십시오.
  4. 실행 취소 기록을 유지하십시오.

파일이 아직 git repo에 추가되지 않은 경우 먼저 파일을 추가하십시오.

:Gwrite


답변

NERDTree 플러그인으로하고 있습니다.

:NERDTreeFind

그런 다음 m

이름을 바꾸려면 (m)ove the current node파일 이름을 선택 하고 변경할 수 있습니다 . 또한 삭제, 복사, 이동 등과 같은 옵션이 있습니다.


답변

  • 편집하는 동안 파일을 작성하십시오 :w newname–사본을 작성하십시오.
  • 새 사본 편집을 시작하십시오 :e#.
  • (선택 사항) 기존 사본을 제거합니다 :!rm oldname.

Windows에서 선택적 3 단계는 약간 변경됩니다.

  • (선택적으로) 오래된 Windows 사본을 제거하십시오 :!del oldname.

답변

파일이 이미 저장된 경우 :

:!mv {file location} {new file location}
:e {new file location}

예:

:!mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala
:e src/test/scala/myNewFile.scala

권한 요구 사항 :

:!sudo mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala

다른 이름으로 저장:

:!mv {file location} {save_as file location}
:w
:e {save_as file location}

Windows 미확인

:!move {file location} {new file location}
:e {new file location}


답변

나는 :Renametpope의 내시 에서 권장 합니다.

또한 다른 많은 편리한 명령이 포함되어 있습니다.

이름 바꾸기 명령은 현재 다음과 같이 정의됩니다 (업데이트하려면 리포지토리를 확인하십시오!).

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