Vim과 Emacs의 장단점은 무엇입니까?


372

이 에디터들을 어떻게 비교하겠습니까? 각각의 장단점은 무엇입니까?

[ note ] "한 사람을 증오하고 다른 사람을 사랑하는"사람이나 둘 다 사용하지 않은 사람은 대답하지 않습니다.


1
M-! emacs RET"google"에 대한 Google 검색과 같습니다
Seamus

11
SO 질문의 중복 : stackoverflow.com/questions/1430164/... 우분투의 askubuntu.com/questions/804/... 와 프로그래머 programmers.stackexchange.com/questions/1271/... 꼭 여기 확산을 사랑 해요.
Trey Jackson

27
XKCD 378 을 언급 한 사람이 아무도 없습니다 .
tedder42

9
이 질문들이 진정한 WYGIWYG 편집자 인 Ed와의 비교를 요구하지 않는 방법에 주목하십시오!
Mark K Cowan 2016 년

4
@ tedder42 그렇다면 "Mel"이라고 말할 수도 있습니다 .
Tobias Kienzler

답변:


420

하나를 선택해야한다면 어느 것을 선택해야하는지 알고 있습니다. 그래도 몇 가지 문제를 객관적으로 비교하려고 노력할 것입니다.

  • 어디서나 사용 가능합니까? Unix 시스템을 사용하는 전문 시스템 관리자이거나 내장 장치 (라우터, Busybox가있는 스마트 폰 등)의 고급 사용자 인 경우 모든 Unix 시스템에서 사용할 수 있으므로 vi (Vim 아님)를 알아야합니다. 데스크탑, 서버 또는 임베디드 유닉스 계열 시스템. 일반 사용자의 경우이 주장은 중요하지 않습니다. Emacs는 모든 데스크탑 / 서버 OS에서 쉽게 사용할 수 있으며 원격 편집을 지원하므로 데스크탑 컴퓨터에 충분합니다.

  • 부푼? 이맥스는 한때“8 메가 바이트와 끊임없는 스와핑”에 유머러스하게 서있었습니다. 현재 내 컴퓨터에서 Chrome은 100 개의 열린 파일에 대해 Emacs보다 많은 탭 당 RAM이 필요하며 Firefox는 언급하지 않습니다. 21 세기에 이맥스 팽창은 신화 일뿐입니다.

    기능 팽창도 문제가되지 않습니다. 사용하지 않으면 거기에 있는지 알 필요가 없습니다. Emacs 기능은 사용하지 않을 때 방해가되지 않으며 문서가 잘 정리되어 있습니다.

  • 시작 시간 : Vi (m) 지지자들은 Emacs의 시작 시간에 대해 불평합니다. 예, Emacs는 느리게 시작되지만 큰 문제는 아닙니다. 세션 당 한 번 Emacs를 시작한 다음로 실행중인 프로세스에 연결하십시오 emacsclient. 따라서 Emacs의 느린 시작은 대부분 신화입니다.

    원격 시스템에 로그인하여 파일을 편집하려는 경우는 예외입니다. 원격 Emacs를 시작하는 것은 원격 Vim을 시작하는 것보다 (보통) 느립니다. 경우에 따라 Emacs를 Screen 내에서 계속 실행할 수 있습니다. Emacs 내에서 원격 파일을 편집 할 수도 있지만 터미널의 ssh 세션에 있으면 플로우가 중단됩니다. (XEmacs 21 또는 GNU Emacs 23부터는 터미널 내부에서 실행중인 X 인스턴스에서 Emacs 창을 열 수 있습니다.)

    테이블을 돌리면 Vim이 Emacs ( vim -u /dev/nullvs emacs -q) 보다로드하는 데 현저히 오래 걸리는 것을 관찰했습니다 . 분명히 이것은 이상한 플랫폼 (Cygwin)에있었습니다.

  • 초기 학습 곡선 : 이것은 사람마다 다릅니다. Michael Mrozek의 그래프 는 나를 방해했습니다. 진심으로, Vim의 학습 곡선은 다른 편집기보다 가파르고 가파르게 시작하지만 gvim을 사용하여 줄일 수는 있음에 동의합니다.

    Emacs의 신화를 없애 버렸기 때문에, 한 가지 신화를 없애자 : 모달 에디터는 사용하기 힘들거나 고통스럽지 않다. 약간의 습관이 필요하지만 잠시 후 매우 자연스럽게 느껴집니다. vi (m)을 다시 디자인한다면 모드를 확실히 유지할 것입니다.

  • 점근 적 학습 곡선 : Vim과 Emacs에는 많은 기능이 있으며, 수년간 사용한 후에도 새로운 기능을 계속 발견 할 수 있습니다.

  • 생산성 : 이것은 매우 어려운 주제입니다. vi (m)의 지지자들은 당신이 홈 행을 떠나지 않고도 거의 모든 것을 할 수 있다고 주장하며, 그것이 가장 필요할 때 더 효율적입니다. Emacs의 지지자들은 Emacs가 자주 사용하지 않는 많은 명령을 가지고 있기 때문에 키 바인딩을 보증하지는 않지만 필요할 때 편리하다고 생각합니다 ( 필수 xkcd 참조 ).
    내 개인적인 견해는 타이핑 장애가 없으면 Emacs가 궁극적으로 승리한다는 것입니다 (심지어 키 Ctrl문자 만 필요하고 + 문자 와 같은 조합은 필요하지 않음 ). 홈 행 키는 훌륭하지만 모드를 전환해야하기 때문에 종종 큰 승리는 아닙니다. Vim이 크게 할 수있는 일이 없다고 생각합니다 대화가 사실 인 반면 이맥스보다 더 효율적입니다.

  • 커스터마이징 : 두 에디터 모두 프로그래밍이 가능하며, 두 가지 모두를위한 광범위한 패키지가 있습니다. 그러나 Vim은 매크로 언어를 사용하는 편집기입니다. Emacs는 Lisp로 작성된 에디터로서 일부 임시 프리미티브를 사용합니다. 저자가 생각하지 못한 일을 시도 할 때 이맥스가 눈에 띄게 승리합니다. 이것은 매일 일어나지 않지만 수년에 걸쳐 축적됩니다.

  • 편집자 이상 : Vim은 편집자입니다. Emacs는 단순한 편집기가 아니라 IDE, 파일 관리자, 터미널 에뮬레이터, 웹 브라우저, 메일 클라이언트, 뉴스 클라이언트 등입니다. 좋은 일이든 나쁜 일이든 토론의 문제입니다. 그러나 Emacs를 단순한 편집기로 사용할 수 있습니다 (위의“기능 팽창”참조).

  • IDE로서 : Vim과 Emacs는 많은 프로그래밍 언어와 다른 텍스트 형식을 지원합니다. 구문 색상 지정 및 자동 들여 쓰기와 같은 기본 사항 외에도 코드 및 설명서 상호 참조 조회, 지원 삽입 및 리팩토링, 통합 버전 제어, 컴파일을 시작하고 첫 번째 오류로 넘어갈 수있는 기능과 같은 고급 IDE 기능이 있습니다.

    Emacs가 Vim보다 더 나은 도메인 중 하나는 비동기 하위 프로세스 와의 상호 작용입니다 . 긴 컴파일을 시작하고 컴파일러가 변경되는 동안 동일한 편집기 인스턴스에서 다른 작업을 수행하려고 할 때입니다. 또는 읽기 평가 인쇄 루프 와 상호 작용하고 싶을 때 — Emacs는이 점을 잘 보여줍니다. Vim은 서투른 해킹 만 제공합니다. 그럼에도 불구하고, 새로운 vim 포크 인 Neovim은이 를 수정하고 스톡 vim에 구현되지 않은 다른 다양한 버그 수정을 구현했습니다.


34
"편집자 이상"이라는 견해에 동의 할 수 없습니다. Vim은 또한 파일 관리자 나 IDE (vim-latex와 같은)로 바꾸는 플러그인을 포함하여 많은 플러그인을 가지고 있습니다.
rozcietrzewiacz

7
이것은 내가 작은 느낌이
들게했습니다

10
@rozcietrzewiacz : 예,하지만 Vim에서 웹을 탐색 할 수 있습니까? 이메일을 읽습니까? RSS 피드를 확인 하시겠습니까? 나는 이맥스가 더 강력하고 평범하다는 것을 부정 할 수는 없다고 생각하지만, 그 힘의 유용성은 당신이 찾고있는 것에 달려있다.
musicfreak

3
@Bananguin Emacs는 REPL 과의 상호 작용과 관련된 모든 것이 더 좋습니다 . 예를 들어 Proof general 은 매우 훌륭합니다 (물론 매우 좁은 애플리케이션 도메인입니다). Emacs는 아무도 생각하지 못한 일을 잘합니다. Emacs Lisp는 Vim의 매크로 언어보다 훨씬 좋습니다. 이맥스는 소스 코드 들여 쓰기를 더 잘 지원하는 경향이 있지만 라이브러리 부족으로 Vim에 결함이 있다고 생각하지 않습니다 (Vim 지원은 구문 강조로 제한되는 경향이 있습니다).
Gilles

5
@MichaelHampton 그때는 젊어 야합니다. 1985 년에는 8MB 였습니다. 이제는 브라우저 탭이 하나도 없기 때문에 아무도 Emacs의 메모리 사용량을 알지 못한다는 점을 제외하고는 8 천 메가 바이트가되어야한다고 가정합니다.
Gilles

267

나는 각각의 주요 이점이라고 생각하는 것을 게시 할 것입니다.


Emacs는 파일 시스템 탐색이나 버전 제어와 같은 텍스트 편집기와 모호한 작업과 RSS 피드 읽기와 같은 텍스트 편집기와 관련이없는 확장과 같은 작업을 수행 할 수 있도록 훨씬 더 많은 확장 기능을 가지고 있습니다. 텍스트 편집기 대신 환경을 원한다면 Emacs가 Vim보다 낫습니다. 또한 Emacs는 여러분이 믿어야 할 것들에도 불구하고 배우기가 훨씬 쉽다고 생각합니다.

에디터 학습 곡선 만화

특히 초보자 Emacs 사용자는 초보자 Vim 사용자보다 빠를 것이라고 생각합니다.


다른 한편으로, Vim은 명백히 빠릅니다. 이것이 논쟁의 핵심 부분 인 것 같지만 제 생각에는 전혀 논쟁이 없습니다. 나는 유창한 Emacs 사용자라고 생각하며, Vim에 대해 동등한 지식을 가지고 있다는 것을 알고있는 두 사람과는 어울리지 않습니다. 문제는, Vim을 충분히 숙달 할만큼 충분한 Vim 숙련도를 가진 사람들의 수가 엄청나게 작다는 것입니다. 가능한 속도 게인과 실제 속도 게인 사이에는 큰 차이가 있습니다. Emacs 사용자는 Vim 사용자의 99 %에 달하는 속도를 낼 것이며, (Emacs 섹션에서 언급했듯이) 처음 Emacs 사용자는 Vim 사용자를 시작하는 것보다 빠를 것입니다


8
음 ... vim에 둘 이상의 버전 제어 플러그인이 있다는 것을 알고 있습니다. 그리고 그 플러그인 중 하나는 모든 대중적인 시스템을 지원합니다. emacs에 더 많은 것이 있다면 ... 같은 것을하기 위해 얼마나 많은 것들이 필요합니까?
xenoterracide

13
@xeno vim이 가지고있는 플러그인이 무엇인지 모르기 때문에 VCS가 나쁜 예일 수 있지만 vim이 "모든 것을 수행하는 하나의 프로그램"철학을 구독하지 않기 때문에 Emacs가 vim보다 훨씬 더 많은 플러그인을 가지고 있다고 확신합니다
Michael Mrozek

4
누군가 위에서 주어진 이맥스 그래프가 무엇을 의미하는지 설명해 주시겠습니까? 그것을 해석하는 방법?
Andrew-Dufresne

27
그것은 "토끼 구멍 아래로"농담입니다 ... 당신이 이맥스를 배울 때, 결국 당신도 이맥스를 만들기 시작하기 때문입니다. (Emacs는 Lisp 인터프리터로 작성된 매우 큰 편집 매크로 / 루틴 모음이기 때문에)
ocodo

15
속도 대 경험치 +1은 좋지만 99 %는 약간 극단적입니다. 나는 vim이 "그것"을 마스터하기 어렵다는 것을 의미한다. 단지 몇 년이 걸린다.)
Johan

81

vi가능한 모든 유닉스 시스템 (또는 거의), 그러나 당신은 이것에 대해 다른 편집기를 말할 수 없습니다. 이것이 자신을 배우고 익히는 가장 큰 이유 인 imo입니다 vi( 'vim'이 아니라 'vi'에 유의하십시오). 기본 설치에서 Emacs를 사용할 수있는 것을 본 적이 없습니다.

나는 Emacs를 사용하지 않는다고 말하는 것이 아닙니다. 이것이 Vim을 사용하는 유일한 이유 vi입니다.


1
나는 꽤있어 vim사용자, 그러나 나는 종종 어려운 사용할 찾을 수 vi있기 때문에 END 키, 대부분의 가능성 (정력을 지원하지만, VI는하지 않습니다, 또는 적어도 기본적으로하지 않습니다)
phunehehe

25
@phunehehe 내가 사용하려고하면 nano내 파일에 ijkloOah가 많이 있습니다 ... 내비게이션에 사용할 수 없다는 것을 알 때까지. 화살표 키를 사용하여 탐색하지 않습니다.
xenoterracide

5
dodgy 연결을 통해 느린 서버에 연결하는 경우 두 배가됩니다. 유닉스 사양에 있다고 확신하는 편집기는 vi이며 vi의 명령 모드를 사용하면 키 입력이 적은 파일을 훨씬 쉽게 편집 할 수 있습니다 각 키 입력이 화면에 나타나려면 몇 초가 걸릴 때 물론, 1 단계는 보통 다음을 설치합니다 vim:)
Gaurav

12
@phunehehe esc를 사용하지 않습니다. 나는 ctrl +를 사용한다 [같은 일을한다;)
xenoterracide

8
Gaurav의 댓글에 +1 Vi는 느린 휴대 전화에서 엉터리 3G 연결을 통해 구성 파일을 긴급하게 편집하는 데 탁월합니다.
LawrenceC

23

둘 다 굉장하다고 생각합니다. 나는 어느 쪽이든 당신이 상상할 수있는 모든 것을 할 수 있다고 생각합니다. 그리고 그것들은 너무 커스터마이징 할 수 있습니다.

Emacs는 사용자 인터페이스에 대한 사용성 및 일관성에 대한 ISO / IEC 표준에 조금 더 근접해 있지만 (여전히 충족하지는 못하지만), 그 vim에 대한 "인서트"와 관련하여 많은 트릭을 수행하지는 않습니다. 다른 프로그램과의 작업을 통해 개발 한 본능의 수명은 당신에게 불리하게 작용하지 않습니다.

Vim은 완전히 다른 모델이며 여러면에서 Cntrl / Alt 시퀀스에 의존하지 않는 한 자체 모드보다 우수합니다. 대신 모드에만 의존하므로 홈 행에 타이핑을 유지하고 입력 할 수 있습니다 빨리. 그러나 vim은 실제로 고유하며, 매우 특이한 동봉 소프트웨어 (예 : Vimperator, Jumanji / Zathura 등)를 설치하지 않으면 vim을 사용하여 개발 한 본능은 다른 프로그램으로 넘어 가지 않으며 그 반대도 마찬가지입니다. 즉, 나는 스스로 vim에 정착했다. 둘 다 마스터하기가 어렵 기 때문에 더 좋거나 나쁘게 하나 이상에 정착해야합니다.


1
"vim을 사용하여 개발 한 본능은 다른 프로그램으로 넘어 가지 않을 것"에 대한 한 가지 의견 : "set editing-mode vi"줄을 ~ / .inputrc 파일에 추가 할 수 있습니다 (지원하는 Linux 시스템). . 이것은 bash 쉘 자체와 같이 stdin에 대한 readline을 사용하여 프로그램에 텍스트를 입력하기위한 vi 스타일 구문을 가능하게합니다. vim을 사용하여 개발하는 편집 본능에 상당히 광범위한 적용 가능성이있을 수 있습니다 (때로는 놀랍게도).
Christian Abbott

다행히도 그 문제를 겪고있는 사람들이 많으며 더 많은 프로그램을위한 확장 기능을 구축하여보다 생생한 느낌을 줍니다.
DarkWiiPlayer

21

나는 정기적으로 둘 다 사용합니다. 나는 Emacs를 "실시간"편집기로보고있는 반면, Vim을 사용하여 빠른 일회성 작업을 수행합니다. 피상적으로 Emacs는 Vim보다 훨씬 부풀어 오므로 Vim처럼 "Fire up"하는 것은 그리 편리하지 않지만 사용자 인터페이스의 철학이이 패러다임을 지원한다는 것도 알게되었습니다. Emacs는 여러분을 내부에 유지하기 위해 훨씬 더 내장되어 있기 때문에 물건을 편안하고 편안하게 만들 수 있습니다. vim은 훨씬 "Unixy"이며 더 큰 도구 벨트의 일부로 간주됩니다.

버키 비트에 대한 의존도가 높기 때문에 많은 사람들이 이맥스에서 도망칩니다 . 그러나 이것은 꽤 어리석은 이유입니다. Emacs가 Vim을 능가하는 진정한 힘은 커스터마이즈 가능성이며 Viper 등의 힘으로 인해 실제로 문제가되지 않습니다. 확실히 Vim-Script는 독자적인 수준의 커스터마이제이션을 제공합니다. 예를 들어, 선호하는 프로그래밍 언어에 적절한 구문 하이 라이터가 제공되지 않았다면 확실히 Emacs는 자체 호스팅 lisp-machine입니다. 결국 당신은 훨씬 더 많은 것을 할 수 있습니다. Vim에는 gnus 또는 org-mode 와 같은 도구가 없습니다 . 간단히 말해서, Emacs는 단순한 편집자 일뿐만 아니라 사실상 망할 운영 체제입니다.

텍스트를 조작 할 때 정확하게 일치한다고 말하고 싶습니다.


30
"Emacs는 텍스트 편집기 만 있으면 훌륭한 운영 체제를 만들 것입니다." -나는이 인용을 상기시켰다.
amphetamachine

@ amphetamachine 견적을 얻지 못했습니다. emacs-the-text-editor를 무시한다는 의미입니까?
tshepang

그것은 일반적으로 무는 소리로 더 많은 소리를 듣는다는 것을 의미합니다.
Cody Poll

편집자 스스로 vim을 사용하여 텍스트를 쉽게 편집 할 수는 있지만 emacs에 사용자 정의 기능을 제공해야합니다. Vimscript는 lisp에 견딜 수 없습니다.
Cody Poll

19

emacs와 XEmacs를 사용하여 몇 년을 보낸 후 vim으로 옮겼습니다. 공평하게, 실제로 1990-1992 년경 vi를 꽤 많이 사용 했으므로 사용자 인터페이스에 익숙했습니다.

이맥스

  • Emacs는 방금 편집자를 작성하는 데 사용 된 lisp 시스템으로 설명되었으며 이에 대한 진실이 있습니다. 환경을 이해하는 데 시간이 걸리는 경우 원하는 것을 거의 구현할 수 있습니다. 나는 그것을 잘 알고 있다고 말할 수는 없지만, 가끔 물건을 fri습니다. Emacs와 Xemacs는이 수준에서 완전히 호환되지 않으므로 타사 스크립트는 한 스크립트에서 실행될 수 있지만 다른 스크립트에서는 실행될 수 없습니다.

  • RMS와 다른 저명한 이맥스 해커들은 Bill Joy, Bram Moolenaar 및 기타 다양한 조명이 여전히 존재하는 OOS 문제로 인해 프로그래밍에서 은퇴해야한다는 것이 관찰되었습니다. 이맥스는 새끼 손가락에 딱딱하다.

  • Emacs는 vi보다 훨씬 가톨릭 시스템이며 소프트웨어 엔벨로프먼트 의 표준 예제로 간주됩니다 . Netscape와 함께 이것은 jwz 가이 법을 증명하는 데 기여한 것 중 하나입니다 .

xemacs로 한 번 한 가지 독특한 일은 컴퓨터에서 실행하고 동일한 실행 인스턴스의 동일한 버퍼에 대해 다른 방에서 xterminal (실제로 용도가 오래된 Sun 3/60)에서 x 세션을 여는 것입니다.

장점 : 사람에게 알려진 다른 편집기보다 확장 가능하고 강력하며 거의 모든 주요 무료 소프트웨어 프로그래밍 도구와 완벽하게 통합됩니다.

단점 : 의심스러운 인체 공학, elisp는 배우기 쉽지 않습니다.

정력

Disclamer-저는 약 10 년 전에 emacs를 사용하여 vim으로 전환했으며 Windows 및 Unix / Linux 기반 시스템에서 습관적으로 vim을 사용합니다.

  • Vi와 그 자손들은 편집 작업을 자동화하기위한 매우 훌륭한 키보드 매크로 기능을 가지고 있습니다. vim의 스크립팅 기능은 elisp만큼 정교하지는 않지만 Python, Tcl, Perl 및 기타 시스템을 지원하여 빌드 할 수 있습니다. vim에 대한 스크립트 (.vimrc 파일 외부) 만 가끔 작성했습니다.

  • Vim은 emacs보다 풋 프린트가 작지만 요즘에는 그다지 중요하지 않습니다.

  • Vim의 문서와 온라인 도움말은 상당히 좋습니다. 이맥스는 꽤 좋은 온라인 문서를 가지고 있지만, 그것이 vim만큼 포괄적이라고 생각하지 않습니다.

  • Vim은 vi의 기발한 모달 사용자 인터페이스를 상속 받지만, 삽입 모드에서 탐색 할 수 있으므로 모달리스 편집기와 매우 유사하게 작동 할 수 있습니다. Windows에서는 Windows 응용 프로그램과 매우 유사하게 작동 할 수 있습니다.

장점 : 우수한 키보드 매크로 기능, 확장 성 및 스크립팅 기능은 우수하지만 emacs만큼 좋지는 않습니다. Vim 또는 vi-derived 편집기는 모든 유닉스 또는 범용 Linux 배포판이 아닌 대부분의 표준입니다. 틀림없이 더 나은 인체 공학.

단점 : 모달 사용자 인터페이스는 Windows UI에 익숙한 사람들에게 이상하게 느껴집니다. 요즘에는 vim 관련 문제가 적습니다.


나는 당신의 대답을 읽는 것을 즐겼지만 결정 요인을 놓치고 있습니다. emacs에서 vim으로 전환 한 이유는 무엇입니까?
Erik B

그것은 유기적이었습니다-vim의 키보드 매크로는 정말 잘 작동합니다.
ConcernedOfTunbridgeWells

1
젊은 프로그래머로서 인간 공학적 주장은 매우 매력적입니다. 이것은 단지 Emacs 대신에 VI와 VIm을 배우고 배우기로 결심했을 것입니다.
Didier A.

15

나는 보통 Vim을 사용하지만 둘 다 훌륭한 편집자입니다.

vi를 사용하는 법을 배우는 것은 힘들었지 만, 그것을 통해 배우고 좋아하는 법을 배웠습니다. 가장 실망스러운 순간은 캡 잠금 키가 켜졌을 때였습니다. gVim으로 시도해 볼 수는 있지만 vi와 Emacs의 가장 큰 장점 중 하나는 키보드를 사용하는 동안 깔끔한 작업을 수행 할 수 있다는 것입니다. gVim은 마우스를 계속 사용할 수 있습니다. (불량 같은 게임을 동시에 배우는 것은 커서 이동 키를 사용하는 연습을 주었지만 때로는 문서에서 대각선으로 움직이려고 시도했습니다.)

이맥스는 아마도 더 접근하기 쉽다. 그것은 모덜리스이며 캡 잠금 키를 쳐서 스스로를 망치지 않을 것입니다. 컨트롤 키를 누른 상태에서 문자를 입력하여 편집기를 제어한다는 아이디어는 현대의 고급 사용자에게는 그리 외롭지 않아야합니다. 실제 작업을 수행하는 키는 일반적인 Windows / Mac OS X 사용자에게는 거칠고 임의적입니다. 다시 말하지만, 마우스를 사용할 수있는 버전은 장기적으로 유리한 점이 거의 없습니다.

둘 다 효과적으로 사용하려면 어느 정도의 전문 지식이 필요합니다. 예를 들어 메모장과 달리 앉아서 편집 할 수는 없습니다.

편집기에서 작성된 동일한 Lisp에서 내 돈을 쓰는 확장 프로그램의 경우 더 부드러운 경험을 제공하지만 둘 다 구성 할 수 있습니다. (정상적으로 배포 된 이멕스는 에디터가 아닙니다. 에디터를 포함하여 사전에 작성된 소프트웨어가 많은 텍스트 처리에 적합한 Lisp 환경입니다. 더 나은 편집자. ")

나는 일반적으로 Vim을 사용합니다. 왜냐하면 광범위한 훈련 후에는 더 편하다고 느끼기 때문입니다. 이것은 홈 시스템 근처에서 한 손가락을 사용하여 엄청난 수의 명령을 사용할 수있는 모드 시스템의 장점 또는 편집자에게 매우 많이 적용되는 "베이비 덕 증후군"입니다. 그것에.

어느 쪽이든 잘못 사용하지 않을 것입니다.


9

vi / vim을 사용하지 않는 주된 이유는 모달이기 때문입니다. vi를 사용하는 주된 이유는 거의 모든 곳에서 사용할 수 있기 때문입니다.


12
내가 vim을 사용하는 주된 이유는 그것이 모달이기 때문입니다. 학습 곡선이 높지만 익숙해지면 사용하기가 훨씬 쉽습니다.
Kris Jenkins

1
모달 편집을 좋아한다면 Emacs는 이블 모드 ( emacswiki.org/emacs/Evil
Charles Stewart)

9

위의 "vim is modal"주석이 잘못되었다고 생각합니다. Vim에는 명령이 있습니다. "11aNow는 모든 선량한 사람을위한 시간입니다."를 수행 할 수 있으며 파일에 11 개의 동일한 새로운 텍스트 줄이 생깁니다. 그것은 모드가 아니라 명령입니다. 그러나 실제로 Vim 명령과 Emacs 명령에는 매우 기본적인 차이점이 있습니다. 필자가 설명 할 수 있을지는 확실하지 않지만 Eric Fischer는 10 년 전 TTY 드라이버에 Emacs 스타일 라인 편집 기능을 통합했으며 이에 관한 논문을 발표했습니다.

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

그는 Emacs 스타일 라인 편집이 vi 스타일과 근본적으로 다르다는 것을 발견했습니다.

따라서 Emacs는 다른 많은 것들 (bash, gnuplot, zsh, ksh, 내가 생각할 수없는 다른 것들)이 모두 Emacs 스타일 라인 편집을 구현한다는 이점이 있습니다.

나는 개인적으로 항상 Vim을 사용한다는 것에 주목해야한다. 저는 가끔 이맥스 사용자입니다.


1
set -o vi에서 bash또는 zsh너무 실행하기 어려운 (또는에 넣어 아닌 rc파일) 내 의견으로는.
moon.musick

@ moon.musick-확실히, 나는 항상 그것을한다. 그것은 단지의 gnuplotPostgreSQL을의, psql, MySQL의의 mysql와 다른 인터페이스 모두의 톤은 기본적으로 이맥스 모드 다소 않습니다. 오라클 만이 sqlplus커맨드 라인 편집을 할 수 있다면 ... 아니요. 그것은 메이저 코퍼레이션에게 묻기에는 너무 많은 것입니다. 그들은 따라야 할 트렌드가 있습니다!
Bruce Ediger

inputrc셸 도구를 사용하는 경우 가 가장 많지만 j터미널에서 전환 한 후 Mendeley Desktop과 같이 스크롤이 내려 가지 않는 이유를 0.5 초 동안 궁금해 하며 vim 바인딩을 너무 많이 요청했습니다. 불행히도 모든 것을 다룰 수 없으며 일관된 환경을 유지할 수 없습니다.
moon.musick

2
@BruceEdiger 내가보기 엔 개발자가 의심 mysql(1), psql(1), gnuplot(1),도 python(1), perlconsole(1), lftp(1), smbclient(1)대화 형 프로그램을 실제로 많은 라인 편집에 대한 키 바인딩에 대해 우려했다. 이 모든 소프트웨어는 GNU Readline 만 사용하며 GNU Readline의 기본 모드는 GNU Emacs와 비슷합니다. set editing-mode vi 당신 ~/.inputrc과 짜잔에 –이 모든 도구들은 vi와 같은 키 바인딩을 가지고 있습니다.
Dmitry Alexandrov

9

명시 적으로 언급되지 않았으므로 약간 수정 된 Emacs 배포보다 더 나은 프로그래밍 환경 (상자 속의 리스프, SLIME 등)이 없다는 것을 추가 할 것입니다. 모든 프로그래밍 요구 사항 (99 %)은 Vim 내에서 처리되지만, 내가 작성한 모든 Lisp 라이브러리 및 루틴에 대해 Emacs를 실행하여 생산적인 작업을 수행해야합니다.


8
나는 이것이 이것이 리스프 나 이맥스에 대해 더 많이 말하고 있는지, 그리고 그것이 좋은지 나쁜지 궁금합니다.
Kevin Cantu

8

Vim / gVim을 사용합니다.

나는 Emacs를 사용했지만 gVim은 일반적으로 느린 기계에서 더 빨리 작동하고 POSIX 요구 사항으로 인해 vi는 거의 모든 곳에서 사용할 수 있습니다.

Vim 또는 gVim을 사용할 때 마우스를 많이 사용하며 지원이 훌륭하다고 생각합니다.

초보자 사용자가 사용하기 쉽기 때문에 Emacs를 사용하기 시작했습니다. 어떤 이유로 나노 사용이 오류가 발생하기 쉽다는 것을 알았고 어느 시점에서 vi를 사용하는 것이 훨씬 더 편하다는 것을 깨달았습니다.

지금은 혼합물입니다. 나는 Eclipse를 사용하고 gedit도 꽤 자주 사용합니다. 그러나 Vim은 여전히 ​​내가 가장 좋아하고 가장 많이 사용하는 편집기입니다.


7

나는 전문가도 아니지만 gVim과 Emacs를 모두 생산적으로 사용할 정도로 충분히 사용합니다. 확실하게 말할 수있는 한 가지는 Windows 7 랩탑에서 Vim과 gVim이 더 빨리 실행된다는 것입니다 (직장에서 사용해야 함). Windows 상자에있는 Emacs는 키보드 버퍼에 축적 된 모든 것을 서두르 기 전에 키보드 입력을 계속 받아들이더라도 최대 1 분 동안 "일시 정지"하고 응답하지 않는 이상한 습관을 가지고 있습니다. Mac OS 또는 Linux에서는 발생하지 않습니다. 그럼에도 불구하고 모든 플랫폼에서 Vim 또는 gVim을 사용하는 경우가 많으므로 사용하고 조정하는 편집기를 중지하고 생각할 필요가 없습니다. 즉, 순전히 * nix 환경에서는 모더리스 편집이 약간 더 자연스럽게 보이기 때문에 아마도 Emacs와 함께있을 것입니다.

결론 : 제 생각에 두 편집자는 모든 텍스트 편집 요구를 처리 할 수있을만큼 강력합니다. 선택은 실제 고려 사항 (예 : 플랫폼 구현 세부 사항) 및 작업 스타일을 기반으로해야합니다.


3

이맥스와 Vim의 주요 차이점은 인체 공학적입니다. 아시다시피 손목 관절 증후군, CTS가 있습니다. CTS가 있고 CTS를 도발하는 경우 이맥스는 매우 위험합니다. Vim-많은 곳 에서이 차이점에 대해 읽을 수는 없습니다. 예를 들어, Vim에서는 한 손가락으로 만 텍스트를 편집 할 수 있습니다. Emacs에서는-할 수 없습니다 :)


3
CTS가 실제로 키보드 사용과 관련이 있다는 것은 입증되지 않았습니다. 피상적으로 그럴듯하지만 CTS가 실제로 다른 무엇보다 유 전적으로 발생한다는 것을 보여주는 링크가 있습니다. 따라서 이미 CTS를 사용하는 경우 입력을 줄이는 것이 여전히 도움이 될 수 있지만 한 편집자 다른 편집자 보다 CTS를 더 많이 발생 시킨다는 증거 는 없습니다 .
Konrad Rudolph

-2

나는 단순하고 눈에 거슬리지 않기 때문에 vi/ nvi(NOT vim)를 사용 합니다.

vim비프 음이 너무 심하고 차단이 불분명합니다. 나는 내부 PC 스피커 를 물리적으로 제거 해야만 결국 그 방법에 대한 매장 참조를 발견했다. :)

set vb t_vb=

또한 구문 채색을 사용하지 않고 검정보다 회색이 가장 아름답습니다.

그리고 emacs내가 기억하는 유일한 세 가지 키 조합이 CTRL-ALT-DEL 이라는 것을 알기에는 너무 어리 석습니다 .


-2

"Vim과 Emacs의 장단점은 무엇입니까?" -하!

나는 주로 전문가들을 다른 사람들에게 맡길 것이다.

이 두 가지의 단점은 둘 다 오래된 학교라는 것입니다. 나는 수년 동안 기본 라인 편집기에서 초고속 어셈블리 코드 편집기 (VEDIT), 멋진 GUI 편집기, 다른 GUI 편집기에 이르기까지 50여 개의 다른 편집기를 사용했습니다. 나는 심지어 ForthStar라는 자체 특수 편집기를 작성하고 방금 편집 한 마지막 잎을 즉시 찾거나 코드 구성 요소를 빨리 찾거나 잎 부모를 찾는 것과 같이 강력한 검색을위한 여러 색인으로 btrieve 잎의 나무를 편집하도록 조정했습니다. 또는 아이들.

저는 vi와 emacs가 근육보다 더 많은 종교라고 생각합니다. 그들을 창조 한 창조적 인 마음은 크게 움직여졌고, 새로운 지원은 그들을 재창조 할 용기와 기술이 부족합니다.

예 이맥스는 많은 일을 할 수 있지만, 아름답고 현재는 더 이상 사용되지 않는 언어 인 lisp에 의해 느려집니다.

둘 다 어려운 키보드 레이아웃에 붙어 있습니다. Emacs는 골동품 메타가 아닌 Alt 키가 있음을 인식함으로써 최소한 사용자에게 약간의 조정을 가할 수있었습니다. 그리고 WordStar와 마찬가지로 속도 입력시 CA CB를 CA B와 똑바로 유지하는 것은 그만한 가치가 없다는 것을 알고 있습니다. 키 조합 중 하나만 사용하는 것이 좋습니다. 예, 키 바인딩을 변경할 수 있지만 나중에 엉망이됩니다.

Vi는 영리하지만 메모장 ++에서와 같이 강력한 검색 및 대체 기능이 없으므로 발견 된 것을 보여주고 확장하여 선택적으로 한 가지 혁신을 언급하기 위해 색상으로 선택적으로 적용 할 수 있습니다.

요즘 거의 모든 다른 GUI 응용 프로그램은 마우스 휠로 확대 / 축소 할 수 있습니다. Emacs GUI는 이것이 작동하지 않는 것 같습니다. 케이트와 같은 멋진 그리스어는 어디에 있습니까?

수년 동안 제가 가장 좋아하는 키보드 레이아웃은 Wordstar의 커서 다이아몬드였습니다. 최소한 배우기가 쉬웠고 즉시 이해가되었습니다. 내가 가장 싫어했던 것은 워드 퍼펙트 였는데, 이는 복잡성을 증가 시켰으며 다소 이맥스를 기반으로 한 것 같습니다.

요즘 세상 대부분이 GUI를 가지고 있다고 가정 해 봅시다. 텍스트 편집기는 나이에 다소 얽매여 있습니다.

emacs, vi, wordstar 또는 주요 레이아웃을 쉽게 전환하고 제공 해야하는 더 강력한 명령을 잃지 않고 보편적 인 편집기를 사용하는 것이 좋습니다. 실제 프로그래머는 다양한 편집 도구를 사용해야합니다. 왜 우리가 일을하도록 강요하기보다는 일을 끝내야하는 필요를 충족시키는 편집자가 없는가?


이 질문은 장단점을 모두 요구했기 때문에 질문에 대한 답은 아닙니다. 내가 볼 수있는 한, 다른 편집자들이 Vi와 Emacs보다 어떻게 더 나은지에 대해서만 언급합니다.
Kusalananda

질문에 대한 답변이 있고 이전 질문과 본질적으로 다를 때까지 질문에 대한 모든 대답은 괜찮습니다. "좋아 보인다".
peterh

Q는 분명히 단점을 요구합니다. 그리고 나는 몇몇 전문가를 언급합니다.
타원형보기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.