리눅스 서버에 접속해 설정 파일을 수정해야 할 때, 거의 항상 마주치는 도구가 vi입니다. 그래픽 환경 없는 원격 서버에서도, 최소 설치된 시스템에서도, vi는 거의 예외 없이 존재합니다. 그래서 리눅스 관리자에게 vi는 선택이 아니라 필수입니다. 처음 vi를 만나면 "글자를 입력하려는데 이상한 일이 벌어진다", "어떻게 빠져나가는지조차 모르겠다"는 당혹감을 느끼기 마련입니다. 이것은 vi가 **모드(mode)**라는 독특한 개념 위에 설계되었기 때문입니다. 일단 이 모드의 철학을 이해하면, vi는 마우스 없이 손을 키보드 홈 포지션에 둔 채 텍스트를 자유자재로 다루는 강력한 도구가 됩니다. 오늘은 vi/vim을 시험 수준 이상으로 정밀하게 파고들고, nano와 emacs도 개요로 짚어봅니다.
📚 유래/사례: vi에서 vim으로
vi(visual editor)는 1976년 빌 조이(Bill Joy)가 만든 에디터입니다.vim(Vi IMproved)은 1991년 브람 무레나르(Bram Moolenaar)가vi를 개선해 만든 현대적 버전으로, 구문 강조, 다중 실행 취소, 분할 화면 등을 추가했습니다. 오늘날 대부분의 리눅스에서vi를 입력하면 실제로는vim이 실행됩니다.
vi를 이해하는 열쇠는 모드입니다. 같은 키를 눌러도 어떤 모드에 있느냐에 따라 전혀 다르게 동작합니다.