숭고한 텍스트에서 핫 엑시트 기능을 구현하는 vim 플러그인이 있습니까?


11

핫 엑시트는 Sublime Text 편집기의 킬러 기능 중 하나입니다. 열린 파일의 수정에 대해 걱정하지 않고 언제든지 편집기를 닫을 수 있습니다. 질문없이 닫힙니다. ST를 다시 시작하면 열려 있고 편집 된 모든 파일이 닫히기 전과 동일한 상태가됩니다.

vim에서 동일한 작업을 수행하는 방법이 있는지 궁금합니다.


: xa 모두 종료 (모든 변경 사항 저장 및 Vim 닫기)
— Sim

파일을 쓰지만 다른 것은 저장하지 않습니다. OP는 파일을 쓰지 않고 파일을 저장하고 열려있는 탭이나 버퍼의 상태를 저장하는 것을 원한다고 생각합니다.
— EvergreenTree

예, 나는 그의 의견에서 나중에 그것을 이해했습니다.
— Sim

답변:


6

Vim은 이것을 수행 할 수 있지만 약간 복잡하고 약간의 설정이 필요합니다.

romainl 은 당신을 옆으로 데려옵니다session . 누락 된 비트는 교환 파일 :preserve및에 대한 &플래그입니다 cpoptions.

스왑 파일은 Vim 또는 시스템 충돌시 복구를위한 것입니다. 저장하지 않은 변경 사항을 복구 할 수 있습니다 (일부 제한 사항 참조 :he swap-file). 그러나 Vim이 정상적으로 종료되면 버퍼에 변경 사항이 저장되지 않은 경우에도 사용중인 스왑 파일이 삭제됩니다.

그건 어디 :preserve와 cpoptions의이 &들어온다. :preserve(옵션이에 설정 한대로 4 초 200 자, 또는 그 이후에 표준 반대) 세력 빔은 즉시 스왑 파일에 대한 모든 버퍼를 작성. 이렇게는 :set cpoptions+=&빔을 알 수 없습니다 로 저장 스왑 파일 삭제 :preserve정상적으로 종료 할 때입니다.

불행히도 Vim은 스왑 파일을 복구 할 때 자동으로 스왑 파일을 정리하지 않으므로 다음과 같은 디렉토리로 곧 끝날 수 있습니다.

.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt

오래된 것을 수동으로 삭제할 수 있지만 Vim은 *.swp새 스왑 파일을 넣을 파일 이있는 경우에만 자동으로 복구를 제공 합니다. 이 :recover명령은 Vim이 복구 할 스왑 파일을 찾도록 강제합니다.

자동 명령을 사용하여 보존 (아마도 QuitPre이벤트) 및 복구 (아마도 BufRead또는 BufReadPost)를 자동화 할 수 있습니다 . Recover.vim 은 복구 관리를위한 친숙한 대안으로 작동 할 수있는 플러그인입니다. 스왑 파일 정리도 처리하는 것으로 보입니다. 파일 이 .swo있지만 디렉토리가 없는 디렉토리를 어떻게 처리하는지 잘 모르겠습니다 .swp. 이 경우에도 계속 사용해야 할 수도 있습니다 :recover.

vim-obsession 은 세션을 훨씬 쉽게 처리 할 수 ​​있다고 주장하는 또 다른 플러그인입니다.


1

예. "세션"이라고하며 다음 내용을 모두 읽을 수 있습니다.

:help session

1
세션에 대해 알고 있습니다. 그러나 동일하지 않은 것 같습니다-열린 모든 버퍼와 탭 (및 설정)을 저장하지만 버퍼 중 하나에 약간의 변경 사항이 있으면 종료하기 전에 디스크에 기록해야합니다. 숭고한 텍스트에서는 종료시 열린 파일을 저장할 필요가 없습니다. 숭고한 텍스트는 모든 변경 사항을 별도의 위치에 저장하고 다시 열 때 복원합니다. 따라서 원본 파일은 디스크에서 그대로 유지되지만 변경 내용도 손실되지 않습니다.
— LazyS

그렇습니다. 이것이 가장 큰 차이점입니다. 그것이 tmux / screen / detach에 의지하지 않고 어떤 식 으로든 달성 될 수 있는지 전혀 모른다.
— romainl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.