Vim은 자동 저장합니까?


13

보낸 사람 :help swap-file:

스왑 파일 업데이트

스왑 파일은 200자를 입력 한 후 또는 4 초 동안 아무 것도 입력하지 않으면 업데이트됩니다. 이것은 단지 움직일 때가 아니라 버퍼가 변경된 경우에만 발생합니다. 항상 최신 상태로 유지되지 않는 이유는 이것이 정상적인 작업 속도를 너무 느리게하기 때문입니다. 'updatecount'옵션을 사용하여 200 자 수를 변경할 수 있습니다. 'updatetime'옵션으로 시간을 설정할 수 있습니다. 시간은 밀리 초 단위로 제공됩니다. 스왑 파일에 쓴 후 Vim은 파일을 디스크에 동기화합니다. 특히 바쁜 Unix 시스템에서는 시간이 걸립니다. 이것을 원하지 않으면 'swapsync'옵션을 빈 문자열로 설정할 수 있습니다. 그러나 작업 손실의 위험이 커집니다. 유닉스 이외의 시스템 (MS-DOS, Amiga)에서는 스왑 파일이 전혀 기록되지 않습니다.

이것으로부터 몇 가지 질문이 있습니다.

  1. 이것은 Vim이 때때로 작업을 자동 저장한다는 것을 의미합니까?

  2. "스왑 파일에 기록한 후 Vim은 파일을 디스크에 동기화합니다." 이것은 무엇을 의미 하는가? 이것은 파일이 먼저 메모리에 쓰여진 다음 디스크에 쓰여지는 것을 의미합니까?

  3. 수업 노트를 작성한다고 가정 해 보겠습니다. 글을 빨리 쓰고 삽입 모드를 떠날 필요가 거의 없습니다. 그러나 여러 번 작업을 저장하기 위해 보통으로 변경합니다. 이 작업을 수행해야합니까, 아니면 Vim에서 삽입 모드를 종료하지 않더라도 대부분의 작업이 저장되도록해야합니까?

답변:


9
  1. 예, 스왑 파일로 저장됩니다.

느낌 을 얻기 위해 빠른 테스트를 수행 할 수 있습니다 . 디렉토리로 이동하십시오. 말하고 vim notest.txt글을 쓰세요 . 파일을 저장할 필요조차 없습니다.

작업 디렉토리에 파일을 나열하면 스왑 파일을 찾을 수 있습니다. 다른 디렉토리 (예 : "notes.txt"파일이없는 곳)에 복사하십시오 vim notest.txt.

기존 스왑, 수정 중 및 읽기 전용으로 열기, 복구 등의 옵션에 대한 메모를받습니다. 복구 및 voila를 선택하십시오! 파일의 "복사본".

  1. 예, 스왑은 메모리에 유지됩니다.

Vim은 파일을 읽을 때 RAM에 추가합니다. 이는 기존 파일과 새 파일 (아직 저장되지 않은 파일) 모두에 해당됩니다. 스왑이 저장되면 디스크로 플러시됩니다. HDD. RAM에서.

  1. 예, 아니오

기본 설정을 사용하면 대부분 의 작업이 저장됩니다. 200자를 입력 할 때마다 또는 4 초 동안 일시 중지 한 경우입니다. 내가 비록 신뢰 저장하는 스왑 파일을, 내가 좋아하는 내가 불안정한 시스템에있어 알고 내 작업을 저장 할 수 있습니다. 그러나 매우 운이 좋지 않고 호스팅 시스템이 매우 중요한 문장을 쓴 직후 공황 상태에 빠지지 않는 한 작업을 계속 유지할 것이라고 확신합니다 .

한마디로 강의가 끝나면 절약하기에 충분합니다. 계급 중간에 어떤 이유로 든 시스템이 중단되어야하는 경우, 스왑이 완료 될 때까지 작업이 완료됩니다.

물론 : 매우 운이 좋지 않으면 스왑 파일을 작성하는 동안 충돌이 발생할 수 있습니다. 결과적으로 스왑 파일 손상 될 수 있습니다. 이것을 경험 한 적이 없으며 파일의 어느 부분이 엉망이 될지 확신하지 못하지만 생각할 가치가 있습니다. 스왑 파일은 더 나은 단어가없는 이진 파일이므로 일반 텍스트 파일보다 더 약한 것으로 추론하는 것 같습니다.


부수적으로. 최소한 스왑에 작업 디렉토리를 사용할 때 스왑 파일은 복구와 관련하여 위치에 구애받지 않습니다. 따라서 당신은 할 수 복사 새 위치로 스왑 파일 및 복구 A와 파일 파일을. 파일 이름은 스왑에 하드 코딩되어 있습니다. 따라서 당신은 말할 수 없습니다 :

cp .foo.txt.swp .bar.txt.swp

vim bar.txt

의 스왑 파일이 필요 foo.txt합니다.

당신이 경우 매우 관심이 있습니다 (* nix에서 스크립트에) 할 수 있습니다 :

xxd -s 108 -l 800 -ps .foo.txt.swp | xxd -r -p

원본 파일의 경로를 가져옵니다. 보시다시피 전체 경로가 추가됩니다 (예 :

~user/blah/blah/notes.txt

하지만 단지 기본 이름은 스왑 검사에 사용됩니다.

이와 관련하여 vim -r현재 및 하위 디렉토리의 스왑 파일을 나열 하는 옵션을 확인할 수도 있습니다 . :h crash-recovery하위 주제를 참조하십시오 .


0

텍스트가 변경 될 때마다 버퍼를 저장하는 것이 좋습니다.

autocmd TextChanged,TextChangedI <buffer> silent write

여기 에서 찾았습니다 . 그것은 나를 위해 작동합니다.

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