`vi` 계열 편집기들의 역사와 주요 파생판, 그리고 `vi`에서 영감을 받은 관련 편집기들을 정리한 목록.
2026-05-04·4분
Linux 사용자 대상 설문조사에 따르면 vi 계열 편집기가 가장 인기 있는 것으로 보입니다. vi 편집기는 1977년으로 거슬러 올라가는 터미널 기반 텍스트 편집기입니다. 왜 এত 많은 사람들이 악명 높을 정도로 초반 학습 곡선이 가파른 50년 된 텍스트 편집기를 굳이 선택하는지 궁금하다면, 한 번 익히고 나면 편집을 극도로 효율적으로 할 수 있기 때문입니다. 게다가 거의 어디에나 있다는 장점도 있어서, 편집 방법을 계속 다시 배울 필요가 없습니다. VS Code, IntelliJ IDEA, XCode를 포함해 대부분의 IDE가 vi 키 바인딩을 옵션으로 제공합니다.
vi 2.0 릴리스(1979)는 당시 기준으로는 매우 큰 소프트웨어였고, 1980년대에는 AT&T의 상용 UNIX® 라이선스를 가진 사람들만 사용할 수 있었습니다. 이런 이유로 여러 사람이 80년대 개인용 컴퓨터에서 실행할 수 있는 무료 vi 클론을 만들었습니다.
이제는 선택할 수 있는 vi 클론과 파생판이 아주 많습니다. 이들 모두를 링크와 함께 잘 정리한 포괄적인 목록을 찾지 못해서, 여기 제 목록을 적어 봅니다. 날짜는 제가 추적할 수 있었던 한에서의 릴리스 날짜입니다. 분명 종료된 프로젝트도 있겠지만, 릴리스 사이 간격이 수년씩 벌어지기도 해서 판단하기 어렵습니다.
vi 키 바인딩을 옵션으로 제공하는 모든 IDE를 나열하지는 않겠지만, 그 외의 추가 제안은 환영합니다.
https://github.com/n-t-roff/heirloom-ex-vi/
원래의 2.11BSD vi에 UTF-8 지원과 POSIX 호환성 수정을 더한 것입니다.
주요한 “삶의 질” 개선은 없으며, 매우 큰 파일을 편집하면 버거워합니다.
https://nosuch.com/tjt/STevie/
Atari ST와 Amiga용 클론입니다. ST나 Amiga가 없다면 이걸 원하지 않을 것입니다. 정말로 ST나 Amiga가 있더라도, 아마 여전히 이걸 원하지는 않을 텐데, 더 나은 선택지가 있기 때문입니다. Vim(아래 참고)은 STevie의 후손입니다.
https://github.com/mbert/elvis
초기 vi 클론 가운데 하나로, MS-DOS, Minix, 그리고 1990년대 초의 다른 시스템에서 돌아가도록 만들어졌습니다.
Elvis는 여러 개선점을 추가했는데, 여기에는 다중 편집 버퍼, 다중 창, 구문 색칠이 포함됩니다. STevie와 달리 편집에 파일 버퍼를 사용했기 때문에, 사용 가능한 메모리보다 큰 파일도 다룰 수 있었습니다. BSD Unix의 80386 포트에 사용되었습니다.
https://martinwguy.github.io/xvi/
다중 창과 버퍼를 추가한 STevie 파생판입니다. 아마 가장 작은 vi 클론일 것입니다.
https://invisible-island.net/vile/
원래는 Microemacs에서 파생되었고, 여기에 vi 스타일 편집을 부여했지만, 모드는 더 많습니다. 무한 실행 취소, UTF-8 지원, 구문 강조 등을 추가합니다.
아마 가장 많이 쓰이는 vi 클론일 것입니다. STevie에서 파생되었습니다. 창, 다중 버퍼, 여러 스크립팅 옵션, UTF-8 지원을 추가합니다. 매우 큰 파일(GB 단위)도 처리합니다.
이제는 LLM이 생성한 코드를 포함합니다.
Elvis를 바탕으로 한 vi의 재구현으로, 핵심 동작이 원본과 동일하도록 의도되었습니다. 4BSD Unix 릴리스에 사용되었습니다.
추가적인 스크립트 언어(Perl과 Tcl) 지원을 더했습니다. 파일 데이터를 저장하기 위해 데이터베이스를 사용하는 방식을 도입했습니다. 대략 GB 크기의 파일도 열 수 있지만 DB 페이지 크기에 대해 불평할 것입니다. 또한 안타깝게도 여전히 UTF-8 텍스트를 지원하지 않습니다.
https://github.com/johnsonjh/OpenVi
nvi의 파생판입니다. 대대적으로 정리되었지만, 여전히 UTF-8 텍스트를 지원하지 않습니다. 또한 매크로, 스크립팅, 구문 강조도 빠져 있습니다.
BusyBox에는 작고 불완전하지만(그래도 쓸 수는 있는) vi 구현이 포함되어 있습니다. Alpine Linux와 임베디드 시스템에서 마주치게 될 것입니다.
https://github.com/illumos/illumos-gate/tree/master/usr/src/cmd/vi
SVR4의 AT&T UNIX® vi로, 2005년에 OpenSolaris의 일부로 오픈소스화되었습니다.
https://github.com/lichray/nvi2
nvi에 UTF-8 지원과 여러 CJK 인코딩 지원을 추가합니다.
오래된 플랫폼 지원을 제거해 Vim을 정리합니다. LSP 지원, 내장 터미널 에뮬레이터, VimScript를 대체하는 Lua 스크립팅, 그 밖의 많은 기능을 추가합니다.
이제는 LLM이 생성한 코드를 포함합니다.
https://codeberg.org/evi-editor/evi
LLM 생성 코드가 들어가기 시작하기 전의 Vim에서 갈라져 나온 포크입니다.
버전 8.3의 Vim(LLM 코드 이전)에서 갈라져 나온 포크로, 사람이 장기 지원하는 것을 목표로 합니다.
https://codeberg.org/landley/toybox
비GPL BusyBox 클론인 ToyBox도 자체적인 작은 vi 구현을 갖게 될지도 모릅니다.
또한, 엄밀히 말해 vi는 아니지만…
https://www.gnu.org/software/emacs/manual/html_mono/viper.html
Emacs용 vi 키 바인딩 모음입니다.
vi에서 영감을 받은 모달 편집기이지만, 키 바인딩이 약간 다릅니다. 최소주의를 지향하며, 일부 기능은 외부 프로그램을 호출합니다.
https://github.com/emacs-evil/evil
Emacs 위에서 구현한 또 다른 vi 모달 편집입니다.
https://github.com/martanne/vis
vi와 비슷하지만, 구조적 정규 표현식과 Plan 9 편집기 sam에서 가져온 다른 기능들이 있습니다. (sam은 그래픽 편집기이므로 이 목록에는 없습니다.)
https://github.com/helix-editor/helix
Kakoune과 Vim에서 영감을 받은 또 다른 새로운 모달 편집기입니다. 다시 말해, 키 바인딩이 다릅니다.