VIM(gvim/macvim)은 저장되지 않거나 이름이 지정되지 않은 버퍼에 대한 스왑 파일을 어디에 보관합니까?

VIM(gvim/macvim)은 저장되지 않거나 이름이 지정되지 않은 버퍼에 대한 스왑 파일을 어디에 보관합니까?

VIM(gvim/macvim)은 저장되지 않거나 이름이 지정되지 않은 버퍼에 대한 스왑 파일을 어디에 보관합니까? (만약 그렇다면).

배경: 약간 강렬한 세미나를 진행하는 동안 MacBook의 전원이 부족하고 갑자기 전원이 꺼졌을 때 이름이 지정되지 않거나 저장되지 않은 MacVim 버퍼에 메모를 하고 있었습니다(보통처럼 잠자기/최대 절전 모드가 아니었습니다).

질문: 저장되지 않은 작업이 스왑(.swp) 파일 등에 저장되어 복구될 가능성이 있는지 아는 사람이 있습니까?

시스템 세부정보: 특히 이 문제는 Mac OS X 10.5.8에서 MacVim을 사용하여 발생했습니다(그러나 다른 버전에 대한 가능한 복구 힌트도 흥미롭습니다). 정리 프로세스가 시작될 경우를 대비해 아직 MacVim을 다시 시작하지 않았습니다.

답변1

vim을 시작하고 다음을 시도해보세요:

:recover <filename>

파일에 이름이 없으면 간단히 다음을 수행하십시오.

:recover

그게 최선의 방법입니다. 스왑 파일 및 복구에 대한 자세한 내용은 다음을 참조하세요.

:help usr_11

스왑 파일은 일반적으로 편집 중인 파일과 동일한 디렉터리에 저장되지만 확장자는 . 숨기기 위해 시작 부분을 추가하고 끝에 .swp를 추가했지만 다음과 같이 다른 곳으로 이동할 수 있습니다.

:set directory=~/vimswap

또는 유사합니다.

보다:

:help swap

모든 세부 사항을 확인하세요.

그러나 vim 스왑 파일은 편집된 버퍼와 동일하지 않으므로 복구를 위해 수행할 수 있는 작업에 대해 읽어보시기 바랍니다.


편집하다: 질문에 대한 답변:

[...] 현재 작업 디렉토리인 ~/tmp, /var/tmp 및 /tmp에서 스왑 파일을 찾는 것 같습니다. 제 경우에는 항상 현재 작업 디렉토리 세트가 있고 거기에 저장되어 있습니다.— dsclementsen 05 oct.

또한 vim -r 명령줄 인수도 확인하세요. 그러면 발견된 모든 스왑 파일과 그 위치가 인쇄됩니다. 또한 날짜/수정된 이름/사용자 이름/등과 같은 많은 추가 정보가 있습니다.— Neg_EV 05 oct.

답변2

Windows 10에서 작업하는데 :recover스왑 파일을 찾지 못했습니다. vim -r_.swp라는 이름의 마지막 편집 세션의 스왑 파일을 나열합니다(또한 저장되지 않음). 으로 복구가 가능했습니다 :recover _.

답변3

대답은: 모든 곳에서요. 비결은 올바른 것을 찾는 것입니다. 일부는 /tmp 디렉토리에 있지만 대부분은 홈 디렉토리 아래 어딘가에 있습니다.

이 작업을 수행하는 더 효율적인 방법이 있을 수 있지만 이름이 지정되지 않은 파일(MacBook에서)을 잃어버렸을 때 다음 방법이 도움이 되었습니다.

홈 디렉터리에서 백업 파일을 검색합니다(몇 초 정도 걸리며 더 똑똑해질 수 있음).

find ./ -name ".s*" > findVimBackups.txt

파일 열기:

vim findVimBackups.txt

이름이 지정되지 않은 파일의 백업용이 아닌 파일 이름을 제거합니다.

:g!/\/\.s..$/d
:g/svn/d

이제 이름이 지정되지 않은 백업 파일의 위치 목록이 표시됩니다. 각 디렉토리에서 오늘의 파일을 찾을 때까지 다음을 실행합니다.

ls -ltra <directory>

올바른 디렉토리에 CD를 넣고 vim을 열고 :recover를 입력하고 올바른 백업을 선택합니다.

답변4

다음과 같이 Win 10 상자에서 파일을 복구할 수 있었습니다.

마지막으로 연 디렉토리로 이동하십시오. vim. 나에게는 Win 10 작업 표시줄의 vim 단축키를 통한 것이었습니다. vim 아이콘을 마우스 오른쪽 버튼으로 클릭하고 vim 바로가기를 다시 마우스 오른쪽 버튼으로 클릭한 후 '속성'을 선택합니다. 대화 상자가 나타납니다. 해당 대화 상자의 '시작 위치:' 필드 값은 내가 마지막으로 vim을 연 위치입니다. 나에게 그 가치는 %HOMEDRIVE%%HOMEPATH%. dos 명령 콘솔로 이동하여 명령을 호출 echo %HOMEDRIVE%하고 echo %HOMEPATH%그것이 어디에 있는지 확인하십시오.

해당 디렉터리에 있는 모든 _.s* 파일의 마지막 수정 날짜를 검사합니다. 마지막으로 파일을 연 날짜와 일치하는 마지막 수정 날짜가 있는 파일을 찾으세요.

vim을 엽니다. :recover _filename_어디에 입력하세요파일 이름이전 지침에서 찾은 파일입니다.

관련 정보