Vi가 업데이트된 파일을 취소하시겠습니까?

Vi가 업데이트된 파일을 취소하시겠습니까?

방금 파일에서 많은 텍스트를 삭제하고 저장했습니다.

이전 버전의 파일을 복원할 수 있나요?

백업을 하고 행운을 시험해 봐야 한다는 것을 알고 있습니다.

답변1

를 사용하는 경우 vim삭제된 텍스트의 일부 또는 전부를 복구할 수 있습니다. 왜냐하면 vim은 마지막으로 삭제된 9개의 텍스트를 레지스터 1부터 9까지 저장하고 .viminfo종료할 때 이 파일은 다음에서 호출되는 홈 디렉터리에 저장되기 때문입니다. 파일 vim.

이 레지스터는 편집된 모든 파일에 대해 전역적으로 저장됩니다 ~/.viminfo.아니요편집된 파일당 하나의 그룹입니다. 따라서 다른 파일을 편집하고 줄을 삭제하면 삭제된 텍스트의 일부 또는 전부가 사라집니다.

다른 파일에서 (많은) 행을 편집하고 삭제하지 않은 경우 삭제한 행 중 (일부)이 아직 남아 있을 가능성이 높습니다.

:registers의 명령을 사용하여 텍스트가 여전히 이 레지스터에 있는지 확인할 수 있습니다 vim.

  1. 실행 vim filename (여기서 filename은 실수로 지운 파일의 이름입니다)

  2. 를 입력 :registers(또는 축약하여 :reg)하고 을 클릭합니다 enter.

  3. 출력을 확인하여 텍스트와 유사한 내용이 있는지 확인하십시오.

예를 들어 내 시스템에는 다음과 같은 내용이 표시됩니다 vim.

:reg
--- Registers ---
""   ^J
"0   ^J
"1   You can check to see if your text is still in those registers with the :registers command in vim.^J
"2   If you haven't edited and deleted lines from other files yet, there's a good chance your deleted lines will still be there.^J^J
"3   If you are using vim, you may be able to recover some or all of your deleted text because vim stores the most recent 9 deletion in registers 1 to 9, which are saved to a file called .viminf
"4   ^J
...
...
...

참고: """이름이 지정되지 않은" 레지스터이며 항상 가장 최근에 복사되거나 삭제된 값을 포함하고 "0현재 복사된 레지스터입니다. 자세한 내용은 다음을 참조하세요.vim 레지스터를 사용하는 방법. Google에서도 이 항목을 찾았습니다.블로그 게시물이것은 그것을 아주 잘 설명합니다.

:help registers물론 도움말도 내장되어 있습니다.http://www.vim.org/, http://vim.wikia.com/wiki/Vim_Tips_Wiki그리고https://vi.stackexchange.com/일반 vim정보에 대해 자세히 알아보세요.

  1. 레지스터에서 일부 삭제된 텍스트가 보이면 , "레지스터 번호를 차례로 입력하고 p이를 현재 위치의 현재 버퍼에 붙여넣습니다.

    예를 들어, 위의 레지스터 1과 2를 복원하려면 다음을 입력합니다.

    "1p"2p

    이 레지스터는 현재 편집 버퍼에 붙여넣어집니다.

참고: 아무 것도 입력하면(예: "레지스터 붙여넣기 시작) :registers디스플레이가 사라집니다 . 따라서 복원하려는 레지스터를 기록해 두거나 :registers필요할 때마다 자주 입력하도록 상기시키십시오.

관련 정보