터미널을 연 다음 Vim을 엽니다. 그런 다음 소스 코드를 작업했지만 불행하게도 터미널 제목 표시줄의 닫기 버튼을 클릭하여 작업 내용이 손실되었습니다. 작업 내용을 저장하지 않고 터미널을 닫으려고 할 때 알려주도록 Vim을 구성할 수 있나요?
감사해요!
답변1
상위 프로세스(터미널)가 종료되었는지 여부를 미리 알 수 있는 방법이 없으므로 vim
일반적으로 상위 프로세스도 종료함으로써 종료됩니다.
그러나 대부분의 기본 설정에서는 현재 편집 중인 파일의 이름을 딴 파일이 vim
생성됩니다 . 이 파일에는 프로세스가 종료되기 전 파일의 스냅샷이 포함되어 있어야 합니다. 이러한 파일을 다른 디렉토리에 배치하도록 특별히 설정하지 않은 한 해당 파일은 편집된 파일과 동일한 디렉토리에 있어야 하며 쉽게 편집을 재개할 수 있습니다..swp
MyPrecious.java.swp
MyPrecious.java
vim
vim
.swp
이러한 파일 중 일부는 점으로 시작하므로 .
디렉토리의 파일을 나열하는 데 사용하지 않는 한 표시되지 않습니다.ls -a
답변2
다른 관점에서 문제를 확인 screen
하거나 tmux
쉘이 터미널과 독립적으로 실행되도록 하십시오. 터미널을 닫으면 새 터미널을 열고 원래 셸에 다시 연결할 수 있습니다. Vim은 계속 실행됩니다.
답변3
vim
터미널의 GUI가 이를 처리하는 방법을 제어할 수 없습니다 WM_DELETE_WINDOW
. 대신 자식이 있는 쉘이 있을 때 터미널을 닫으라는 요청을 받을 때 터미널이 작동하는 방식을 제어하는 설정을 터미널에서 찾으십시오.
답변4
다른 사람들이 말했듯이 vim은 그러한 사건에 반응할 수 없습니다. 그러나 다음 해결 방법 중 하나를 고려해 볼 수 있습니다.
gvim
대신vim
명령줄에서도 호출할 수 있는 를 사용하세요 . 별칭은 스위치를 조정하는 데 도움이 될 수 있습니다(bash가 호환 가능한 쉘이라고 가정)alias vim=gvim
. gvim을 선호하는 편집기로 지정하는 것도 도움이 될 수 있습니다:export EDITOR=gvim
. 그러나 이는 로컬 컴퓨터에서만 작동합니다.- 터미널 멀티플렉서(예:
tmux
또는 ) 사용은 이미 언급되었습니다.screen
- 터미널을 닫을 것인지 확인하도록 터미널(어느 쪽이든)을 구성하십시오. 이것은 처음 몇 번은 당신을 놀라게 할 것이고, 장기적으로는 터미널을 닫기 전에 생각하게 만들 것입니다.