Vim은 텍스트 파일 에디터로서 가장 중요한 역할은 바로 파일 편집 기능입니다.
파일 편집 기능을 이루기 위해서 Vim에서는 3개의 개념을 제공하고 있습니다.
버퍼는 파일의 메모리 입니다.
윈도우는 버퍼를 보여주는 '창' 입니다.
탭은 윈도우의 모음 입니다.
Vim에 처음 접하는 사람들이 가장 어려워 하는 부분중 하나가 다른 텍스트 에디터(e.g., VSCode)와 용어는 같지만 개념이 다른 부분입니다. 이 글과,
이 글의 번역본
에서 잘 설명하고 있습니다.
간단하게 요약하자면 통상 우리가 알고있는 웹브라우저에서의 탭과 VSCode같은 에디터의 탭이 Vim의 버퍼와 개념이 동일합니다.
버퍼
버퍼는 위에서 말한대로 편집을 위해 메모리에 적재된 파일을 뜻합니다. 버퍼에 작업을 해도 다른 여타 에디터와 마찬가지로 저장을 하기 전에는 원본 파일을 수정하지 않습니다.
버퍼에는 세 가지 상태가 존재합니다.
활성화(active) : 활성화 상태는 버퍼에 내용이 존재하고 윈도우에 보여지고 있는 상태를 뜻합니다.
숨겨짐(hidden) : 숨겨짐 상태는 버퍼에 내용이 존재하고 윈도우에 보여지고 있지 않는 상태를 뜻합니다.
비활성화(inactive) : 비활성화 상태는 버퍼에 내용이 존재하지 않고 윈도우에도 보여지지 않고 있는 상태를 뜻합니다.
버퍼에 3개의 상태가 있는 이유는 다음과 같습니다.
메모리 로드 : 활성화 상태와 비활성화 상태가 존재하는 이유입니다. 활성화 된 버퍼는 파일의 내용을 메모리에 적재했다는 것을 의미합니다. viminfo와 같은 것들에 의해 버퍼 목록에는 존재하지만 메모리 성능을 위해 메모리로 파일 내용을 로드하지 않기 위해 존재하는 상태입니다.
빠른 속도 : 메모리 사용량을 최대한으로 줄이기 위해 보이지 않는 상태의 버퍼는 모두 비활성화 상태로 처리할 수 있지만, 버퍼간의 빠른 전환을 위해 메모리에 로드되었지만 보이지 않는 상태인 숨겨짐 상태가 존재합니다.