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


11

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

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


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

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

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

답변:


6

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

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

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

그건 어디 :preservecpoptions의이 &들어온다. :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.