맨위로가기

편집기 전쟁

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

편집기 전쟁은 텍스트 편집기인 Emacs와 vi를 중심으로 벌어진 사용자들 간의 오랜 논쟁을 의미한다. vi는 작고 빠른 모드 기반 편집기인 반면, Emacs는 Lisp 기반으로 확장성이 뛰어나지만 시작 속도가 느리다는 특징을 가진다. 두 편집기는 기능, 사용 방식, 철학적 차이로 인해 지지자들 간의 유머러스한 비판과 조롱을 낳았으며, 이는 다양한 패러디와 유머 코드로 나타났다. 과거에는 vi가 메모리 제약으로 인해 선호되었으나, 컴퓨터 성능 향상으로 인해 두 편집기 간의 성능 차이는 줄어들었다. 최근에는 비주얼 스튜디오 코드가 점유율을 확대하며 편집기 시장의 새로운 동향을 보여주고 있다.

더 읽어볼만한 페이지

  • Vi - Vim
    Vim은 브람 물라나르가 개발하여 1991년 처음 공개한 텍스트 편집기로, vi 편집기의 확장판이며 프로그램 소스 코드 편집에 유용한 다양한 기능을 제공한다.
  • 소프트웨어 전쟁 - 엔디언
    엔디언은 컴퓨터 메모리에 다중 바이트 데이터를 저장하는 방식으로, 큰 단위 바이트가 앞에 오는 빅 엔디언과 작은 단위 바이트가 앞에 오는 리틀 엔디언으로 나뉘며, CPU 종류에 따라 다르지만 빅/리틀 엔디언을 모두 지원하는 바이 엔디언과 2바이트 단위로는 빅 엔디언, 1바이트 단위로는 리틀 엔디언인 미들 엔디언도 존재한다.
  • 소프트웨어 전쟁 - 브라우저 전쟁
    브라우저 전쟁은 1990년대 후반부터 2010년대까지 웹 브라우저 시장에서 경쟁이 치열했던 시기를 의미하며, 넷스케이프 내비게이터와 인터넷 익스플로러의 경쟁으로 시작하여 구글 크롬의 등장과 우위 확보로 마무리되었다.
  • 이맥스 - 리처드 스톨먼
    리처드 스톨먼은 자유 소프트웨어 운동의 창시자이자 GNU 프로젝트 설립자로서, Emacs 편집기 개발, GNU 운영 체제 개발, 자유 소프트웨어 재단 설립, 카피레프트 개념 대중화, GNU 일반 공중 사용 허가서 개발 등 자유 소프트웨어 운동을 이끌었으나, 논쟁적인 발언으로 FSF 회장직에서 사임 후 복귀하기도 한 미국의 컴퓨터 프로그래머, 해커, 사회 운동가이다.
  • 이맥스 - 제임스 고슬링
    제임스 고슬링은 자바 프로그래밍 언어 개발자로 가장 잘 알려진 캐나다 출신의 컴퓨터 과학자로, 썬 마이크로시스템즈 등 여러 회사를 거쳐 현재는 은퇴 후 다양한 기업의 고문 및 이사로 활동하고 있다.
편집기 전쟁

2. 역사적 배경

기술 컨벤션 발표 중 편집기 선택에 대한 내용


2020년 현재, Emacs와 vi는 역사상 가장 오래 지속된 응용 프로그램 중 하나이며,[5] Linux 및 Unix에서 가장 일반적으로 사용되는 두 개의 텍스트 편집기라고 주장할 수 있다.[6] macOS, 리눅스, BSD 등 많은 운영 체제가 사용자의 요구를 충족시키기 위해 여러 텍스트 편집기를 기본적으로 제공한다. 예를 들어, macOS의 기본 설치에는 ed, pico (macOS Ventura 12.3 이전에는 nano), TextEdit, 그리고 Vim이 포함되어 있다.[7]

3. vi와 Emacs의 주요 차이점 및 논쟁

vi와 Emacs는 사용자 인터페이스, 기능, 확장성 등에서 뚜렷한 차이를 보인다.


  • 사용자 인터페이스: vi는 모드 기반 편집 방식을 사용한다. 즉, 텍스트 입력 모드와 명령 입력 모드를 전환하며 편집해야 한다. 반면 Emacs는 모드가 없는 편집 방식을 사용한다.
  • 기능: vi는 간결하고 빠르지만, (적어도 원래는) 사용자 정의 기능이 제한적이다. Emacs는 (특히 시작 시) 느리지만, 기능이 풍부하고 사용자 정의가 무제한이다.
  • 확장성: Emacs는 Emacs Lisp를 사용한 강력한 확장성을 제공한다.
  • GUI 지원: GNU Emacs는 그래픽 사용자 인터페이스(GUI)를 지원하며, 일반적으로 GUI 애플리케이션으로 사용된다. vi는 기본적으로 텍스트 모드 콘솔을 지원하며, GUI 환경에서는 터미널 애플리케이션을 통해 사용된다. vi의 파생 버전인 vim에는 GUI 기능을 갖춘 gvim이 있다.


vi 사용자는 외부 명령 실행 시 vi를 종료하고 UNIX 셸에서 명령을 실행하는 반면, Emacs 사용자는 Emacs 내장 셸 모드를 통해 명령을 실행한다. Emacs는 vi보다 명령어가 풍부하고, Emacs Lisp 스크립트 작성이 가능하다. 또한, viper-mode라는 vi 호환 모드를 제공한다.

GNU Emacs는 다음과 같은 기능을 제공한다.

  • 캘린더 계산 기능 (장기 달력, 디스코드 달력)
  • 40개 이상의 프로그래밍 언어 및 마크업 언어 편집 모드 지원 (Java, Perl, LaTeX, C, C++, Objective-C, FORTRAN, LISP, Scheme, Pascal, Bash 등)
  • 21개 언어([영어]], 중국어, 체코어, 힌디어, 히브리어, 러시아어, 베트남어 등) 입출력 지원
  • PostScript 출력, LaTeX, TeX, 위키백과 편집 모드 지원
  • Emacs 자체를 셸로 사용 가능
  • 플러그인을 통한 다양한 기능 확장: 파일 병합, diff, 업데이트 로그 관리, 디버깅, 버전 관리 시스템, 파일/디렉토리 조작, Make 파일 생성, gnus를 사용한 뉴스 그룹 열람 등


Emacs는 QWERTY 자판에 의존하지 않으며, 다양한 플랫폼(유닉스 계열(GNU/Linux, BSD 계열, Solaris, AIX, IRIX, macOS[19][20] 등), MS-DOS, 마이크로소프트 윈도우[21][22][23], AmigaOS, OpenVMS 등)에 이식되어 있다.

3. 1. vi 측의 주장 (및 Emacs 측의 반박)


  • vi는 유닉스 계열 운영 체제에 반드시 존재하며, POSIX 표준에도 포함되어 있다.[1] 표준 C 라이브러리로 구현할 수 있으므로, UNIX, 리눅스, AmigaOS, DOS, Windows, Mac OS, BeOS 등 각종 OS에서 동작한다.[1]
  • vi는 "어디에 있는 vi라도 거의 같다"는 의미에서 WYSIWYG이다.[2] vi 사용자는 거의 사용자 정의를 하지 않지만, Emacs의 헤비 유저는 사용자 정의를 하는 경우가 많아, 자신의 사용자 정의를 사용할 수 없는 환경에서는 불편함을 느낀다.[2]
  • vi는 기능주의(creeping featurism)에 빠지지 않았으며, Emacs보다 작고 빠르다.[3] 오버헤드도 적다.[3]
  • vi는 "하나의 일만 잘한다"는 UNIX의 설계 사상에 적합하다.[4] UNIX는 만능 칼을 만드는 것이 아니라, 간단한 일을 해내는 가벼운 도구를 만드는 것을 지향한다.[4]
  • vi의 명령어는 Ctrl 또는 Alt와 같은 수식키를 거의 사용하지 않고 입력할 수 있다.[5] 이는 손목 터널 증후군에 걸릴 가능성을 줄인다.[5]

3. 2. Emacs 측의 주장 (및 vi 측의 반박)


  • Emacs는 vi보다 더 많은 명령어와 기능을 제공한다.
  • Emacs는 Emacs Lisp를 사용한 스크립트 작성을 통해 기능을 확장할 수 있다.
  • Emacs에는 viper-mode라는 vi 호환 모드가 포함되어 있다.
  • Emacs에서는 텍스트 입력 모드와 명령 입력 모드를 전환할 필요가 없다.
  • GNU Emacs는 캘린더 계산을 할 수 있으며, 장기 달력이나 디스코드 달력도 지원한다. 이것은 vi에는 없다.
  • Emacs는 Java, Perl, LaTeX, C, C++] ],

4. 유머



리처드 스톨만은 이맥스 교회를 설립하고 자신을 성 이그나티우스(St IGNU-cius)라고 칭하며,[27] vi를 "짐승의 편집기(vi vi vi, 로마 숫자로 666)"라고 불렀다.[8][9] 하지만 vi 사용을 반대하지는 않았고, 독점 소프트웨어를 저주로 여겼다. ("자유 버전의 vi를 사용하는 것은 죄가 아니라 참회이다."[10])

vi 사용자들은 Emacs를 "Eight Megabytes And Constantly Swapping" (8메가바이트로 항상 스왑됨) 또는 "EMACS Makes Any Computer Slow" (EMACS는 어떤 컴퓨터도 느리게 만든다)와 같은 재귀 약어[13]로 조롱했다. 이에 대항하여 vi 사용자들은 "Cult of vi"를 설립했다.

구글에서도 vi를 검색하면 Emacs를, Emacs를 검색하면 vi를 제안하는 유머가 있다.[16]

5. 최근 동향

과거에는 메모리 용량 제한으로 인해 vi 계열의 소형 편집기가 선호되었지만, 현대에는 컴퓨터 성능 향상으로 vi와 Emacs 간의 성능 차이가 줄어들었다. 예를 들어 확장을 추가하지 않은 vim이라도 디스크에 저장하는 데에 오리지널 vi의 10배의 공간이 필요하며, 다양한 확장이 가능해짐에 따라 구 버전의 Emacs에 비해 느려졌다. 하지만 vi와 Emacs 모두 이클립스와 같은 통합 개발 환경에 비하면 훨씬 가볍다.[5]

팀 오라일리는 1999년, 오라일리 미디어에서 출판한 vi 입문서가 Emacs 입문서의 2배의 판매량을 기록했다고 말했다. 이는 vi가 더 인기가 있다는 의미일 수도 있고, 습득하기 더 어려워서 책이 더 팔렸다는 의미일 수도 있다.[32] 리누스 토르발스는 MicroEMACS를 사용하는 것으로 알려져 있다.[33]

macOS와 같은 많은 운영 체제는 Emacs, vim, nano, ed 등 여러 텍스트 편집기를 기본적으로 제공한다.[7]

2021년 7월 23일 GIGAZINE의 기사에서는 비주얼 스튜디오 코드(Visual Studio Code)가 점유율을 확대하여 50% 이상의 점유율을 획득했다고 보도했다.[34]

참조

[1] 웹사이트 Holy War (Hacker Jargon) https://web.archive.[...] 2016-11-30
[2] 웹사이트 EMACS vs. vi: The endless geek 'holy war' https://web.archive.[...] 2016-11-30
[3] 웹사이트 Just Let Me Code https://web.archive.[...] 2015-04-24
[4] 웹사이트 Why Coding Style Matters https://web.archive.[...] 2015-04-24
[5] 웹사이트 The Oldest Rivalry in Computing http://www.slate.com[...] 2014-05-09
[6] 웹사이트 Choosing an Editor http://www.catb.org/[...]
[7] 웹사이트 Ed, man! !man ed https://www.gnu.org/[...] Gnu.org 2014-12-01
[8] 웹사이트 "Rules, Sins, Virtues, Gods and more of The Church of Emacs" https://www.gnu.org/[...] Gnu.org 2014-12-01
[9] 웹사이트 Saint IGNUcius - Richard Stallman https://web.archive.[...] Stallman.org 2014-12-01
[10] 웹사이트 The unabridged selective transcript of Richard M Stallman's talk at the ANU https://web.archive.[...] Linuxhelp.blogspot.com 2014-12-01
[11] 웹사이트 vi (Hacker Jargon) https://www.techfak.[...]
[12] 웹사이트 Some funny acronym expansions of Emacs https://www.gnu.org/[...] Gnu.org 2014-12-01
[13] 웹사이트 The Unix Acronym List http://www.roesler-a[...] 2021-03-04
[14] 웹사이트 Concurrency has landed (was: Please test the merge of the concurrency br https://lists.gnu.or[...] 2020-12-08
[15] 논문 Real Programmers Don't Use PASCAL 1983-07
[16] 웹사이트 Google suggest vi for Emacs and Emacs for vi {{!}} Hacker News https://news.ycombin[...] 2022-04-07
[17] 웹사이트 A Murder at the End of the World: Are you Vi or Emacs? https://xenodium.com[...] 2023-12-26
[18] 문서 Eshell http://www.emacswiki[...]
[19] 웹사이트 CarbonEmacs http://macwiki.sourc[...] 2006-09-27
[20] 웹사이트 Aquamacs is an easy-to-use, Mac-style Emacs for Mac OS X http://aquamacs.org/ 2006-09-27
[21] 웹사이트 GNU Emacs FAQ For Windows 95/98/ME/NT/XP and 2000 http://www.gnu.org/s[...] 2005-06-24
[22] 웹사이트 EmacsW32 Home Page http://ourcomments.o[...]
[23] 웹사이트 GNU Emacs on Windows http://www.franz.com[...] Franz Inc.
[24] 문서 Ed, man! !man ed http://www.gnu.org/f[...]
[25] 문서 All about Linux: The unabridged selective transcript of Richard M Stallman's talk at the ANU http://linuxhelp.blo[...]
[26] 문서 alt.religion.emacs newsgroup news:alt.religion.em[...]
[27] 문서 Saint IGNUcius - Richard Stallman http://www.stallman.[...]
[28] 문서 satirical expansions of EMACS http://www.gnu.org/f[...]
[29] 서적 The art of Unix programming https://books.google[...] Addison-Wesley Professional 2004
[30] 논문 Real Programmers Don't Use PASCAL 1983-07
[31] 문서 Word War vi site http://smcameron.git[...]
[32] 문서 Editor: vi or emacs? http://oreilly.com/p[...]
[33] 문서 Stifflog: Stiff asks, great programmers answer https://web.archive.[...]
[34] 뉴스 戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE https://gigazine.net[...] 2021-07-24
[35] 웹인용 Holy War (Hacker Jargon) https://web.archive.[...] 2017-05-30
[36] 웹인용 EMACS vs. vi: The endless geek 'holy war' https://web.archive.[...] 2017-05-30
[37] 웹인용 Just Let Me Code https://web.archive.[...] 2017-05-30
[38] 웹인용 Why Coding Style Matters https://web.archive.[...] 2017-05-30
[39] 웹인용 Never use hard tabs https://opensourceha[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com