Vim과 Emacs의 장점과 단점은 무엇입니까? [폐쇄]

Vim과 Emacs의 장점과 단점은 무엇입니까? [폐쇄]

이 편집자들을 어떻게 비교합니까? 각각의 장점과 단점은 무엇입니까?

[노트] 이것은 "하나를 미워하고 다른 하나를 사랑한다"거나 둘 다 사용해 본 적이 없는 사람들이 대답하려는 것이 아닙니다.

답변1

저는 둘 다 사용하지만, 둘 중 하나를 선택해야 한다면 어느 것을 선택할지 압니다. 그러나 나는 여전히 몇 가지 문제에 대해 객관적인 비교를 시도하려고 노력할 것입니다.

  • 어디에서나 사용 가능합니까?Unix 시스템을 사용하는 전문 시스템 관리자이거나 임베디드 장치(라우터, Busybox가 있는 스마트폰 등)의 고급 사용자라면 vi(Vim이 아님)를 알아야 합니다. vi는 모든 Unix 시스템에서 사용할 수 있고 대규모로 사용되기 때문입니다. 대부분의 운영 체제에서. 데스크탑, 서버, 임베디드 등 Unix 계열 시스템. 일반 사용자에게는 이 주장이 중요하지 않습니다. Emacs는 모든 데스크탑/서버 운영 체제에서 쉽게 사용할 수 있으며 원격 편집을 지원하므로 데스크탑 컴퓨터에 Emacs를 두는 것만으로도 충분합니다.

  • 부푼?Emacs는 한때 유머러스하게도 "8MB와 교환"을 의미했습니다. 이제 내 컴퓨터에서 Google Chrome은 Emacs가 100개의 열린 파일을 처리하는 데 필요한 탭당 RAM만큼의 RAM을 필요로 하며 Firefox에 대해서는 언급하지 않겠습니다. 21세기에 Emacs의 팽창은 신화입니다.

    특징붓는 것도 문제가 되지 않습니다. 사용하지 않으면 그것이 존재하는지 알 필요가 없습니다. Emacs 기능은 사용하지 않을 때 방해가 되지 않으며 문서도 매우 잘 정리되어 있습니다.

  • 시작 시간: Vi(m) 지지자들은 Emacs 시작 시간에 대해 불평합니다. 예, Emacs는 느리게 시작되지만 큰 문제는 아닙니다. 세션당 한 번 Emacs를 시작한 다음 사용하면 됩니다 emacsclient. 따라서 Emacs가 천천히 시작된다는 것은 대부분 신화입니다.

    한 가지 예외는 원격 컴퓨터에 로그인하여 해당 컴퓨터의 파일을 편집하려는 경우입니다. 원격 Emacs를 시작하는 것은 (보통) 원격 Vim을 시작하는 것보다 느립니다. 어떤 경우에는 화면 내에서 Emacs를 실행할 수 있습니다. Emacs 내에서 원격 파일을 편집할 수도 있지만 터미널에서 SSH 세션에 있는 경우 프로세스가 중단됩니다. (XEmacs 21 또는 GNU Emacs 23부터는 터미널 내에서 실행 중인 X 인스턴스에서 Emacs 창을 열 수 있습니다.)

    Vim은 Emacs보다 로드하는 데 훨씬 더 오랜 시간이 걸리는 것으로 나타났습니다( vim -u /dev/null비교 emacs -q). 물론 이것은 이상한 플랫폼(Cygwin)에 있습니다.

  • 초기 학습 곡선:이는 사람마다 다릅니다.Michael Mrozek의 차트날 웃게 만든. 진지하게, 나는 Vim의 학습 곡선이 처음부터 가파르고 다른 어떤 편집기보다 가파르다는 데 동의합니다. 하지만 gvim을 사용하면 이러한 현상을 완화할 수 있습니다.

    이제 Emacs에 대한 몇 가지 오해를 풀었으니 vi에 대한 오해도 풀겠습니다. 모달 편집기는 사용하기 어렵거나 고통스럽지 않습니다. 익숙해지는 데는 약간의 시간이 걸리지만 시간이 좀 지나면 자연스럽게 느껴질 것입니다. vi(m)을 다시 디자인한다면 반드시 이 모드를 유지할 것입니다.

  • 점근적 학습 곡선:Vim과 Emacs에는 많은 기능이 있으며, 수년에 걸쳐 계속해서 새로운 기능을 발견하게 될 것입니다.

  • 생산력: 매우 어려운 주제입니다. vi(m) 지지자들은 메인 행을 떠나지 않고도 거의 모든 일을 할 수 있어 가장 필요할 때 더 효율적으로 일할 수 있다고 주장합니다. Emacs 지지자들은 Emacs에 자주 사용되지 않는 명령이 많기 때문에 키 바인딩이 필요하지 않지만 필요할 때 매우 편리하다고 반박합니다(필수 xkcd 참조).
    내 개인적인 의견은 입력 장애가 없는 한 결국 Emacs가 승리할 것이라는 것입니다. (그래도 Ctrl+ 문자와 같은 조합이 아닌 키 시퀀스만 요구하도록 Emacs를 구성할 수 있습니다.) 홈 행 키는 훌륭하지만 모드를 전환해야 하기 때문에 일반적으로 성공하지 못합니다. 내 생각엔 Vim이 아무것도 할 수 없을 것 같아상당히Emacs보다 더 효율적이며 그 반대도 마찬가지입니다.

  • 맞춤화 가능성: 두 편집기 모두 프로그래밍이 가능하며 둘 다 사용 가능한 많은 소프트웨어 패키지가 있습니다. 그러나 Vim은 매크로 언어를 사용하는 편집기이고 Emacs는 일부 임시 기본 요소를 사용하여 Lisp로 작성된 편집기입니다. Emacs는 작성자가 생각하지 못한 일을 시도할 때 눈부시게 성공합니다. 매일 일어나는 것은 아니지만 시간이 지남에 따라 합산됩니다.

  • 단순한 편집 그 이상: Vim은 편집자입니다. Emacs는 단순한 편집기 그 이상입니다. IDE, 파일 관리자, 터미널 에뮬레이터, 웹 브라우저, 메일 클라이언트, 뉴스 클라이언트 등이 있습니다. 이것이 좋은 것인지 나쁜 것인지는 논쟁의 여지가 있습니다. 그러나 Emacs를 순수한 편집기로 사용할 수 있습니다(위의 "기능 확장" 참조).

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

    Emacs가 Vim보다 확실히 뛰어난 부분은 다음과 같습니다.비동기식하위 프로세스. 긴 컴파일을 시작하고 컴파일러가 실행되는 동안 동일한 편집기 인스턴스에서 다른 작업을 수행하려는 경우. 아니면 누군가와 교류하고 싶을 때읽기-평가-인쇄 루프— Emacs는 이 분야에서 정말 뛰어납니다. Vim은 몇 가지 투박한 트릭만 제공할 수 있습니다. 그럼에도 불구하고 vim의 새로운 포크는네오빔이 문제는 해결된 것으로 나타났으며, 재고 vim에서는 구현되지 않은 다양한 기타 버그 수정이 구현되었습니다.

답변2

나는 각각의 주요 장점이라고 생각하는 것을 게시하겠습니다.


Emacs에는 파일 시스템 탐색이나 버전 제어 조작 등 텍스트 편집기와 막연하게 관련된 작업을 수행할 수 있는 확장 기능은 물론 RSS 피드 읽기와 같이 텍스트 편집기와 관련이 없는 확장 기능도 많이 있습니다. 단순한 텍스트 편집기가 아닌 환경을 원한다면 Vim보다 Emacs가 더 좋습니다. 또한 나는 Emacs가 배우기 더 쉽다고 생각합니다. 일부 사람들은 다음과 같이 믿겠지만 말입니다.

학습 곡선 만화 편집

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


반면 Vim은 확실히 더 빠릅니다. 이것이 논쟁의 핵심 부분인 것 같지만 제 생각에는 전혀 논란의 여지가 없습니다. 저는 제 자신을 능숙한 Emacs 사용자라고 생각하지만 Vim을 똑같이 잘 아는 소수의 사람들과 비교할 수는 없습니다. 문제는 Vim을 그렇게 빨리 마스터할 수 있는 사람의 수가 매우 적다는 것입니다(Vim을 사용하는 30명 정도의 사람들과 정기적으로 대화를 나누는 중 Vim을 특히 잘하는 사람은 단 한 명뿐이라고 생각합니다). 사이에는 큰 격차가 있습니다.가능한속도 이득과실제Emacs 사용자는 거의 99%의 Vim 사용자만큼 빠르며 (Emacs 섹션에서 말했듯이) 초보 Emacs 사용자는 아마도 초보 Vim 사용자보다 더 빠를 것입니다.

답변3

모든(또는 거의) Unix 시스템에는 사용할 수 있는 편집기가 있지만 vi다른 편집기에 대해서는 동일하다고 말할 수 없습니다. 제 생각에는 이것이 학습과 친숙함의 첫 번째 이유입니다 vi("vim" 대신 "vi"를 참고하세요). 나는 기본 설치에서 Emacs를 사용할 수 있는 것을 본 적이 없습니다.

Emacs를 사용하지 말라는 것이 Vim을 사용하는 유일한 이유라는 말은 아니지만, 자신의 것이 아닌 Unix 시스템을 사용하고 싶다면... vi그것은 보편적 언어의 일부입니다.

답변4

나는 둘 다 자주 사용합니다. 나는 Emacs를 "라이브" 편집기로 생각하고 빠른 일회성 작업을 위해 Vim을 사용합니다. 표면적으로 Emacs는 Vim보다 훨씬 더 비대하기 때문에 확실히 Vim만큼 "실행"하기는 쉽지 않습니다. 그러나 저는 또한 사용자 인터페이스 철학이 이 패러다임을 지원한다는 것을 발견했습니다. Emacs는 사용자를 유지하고 사용자가 떠날 필요가 없도록 멋지고 아늑하게 만드는 데 더 능숙한 반면, vim은 "Unixy"에 더 가깝고 자신을 더 큰 도구 벨트의 일부로 간주합니다.

많은 사람들이 Emacs에 대한 의존도가 높기 때문에 Emacs를 사용하지 않습니다.버키비트, 하지만 그것은 나에게 꽤 어리석은 이유처럼 보입니다. Vim에 비해 Emacs의 진정한 장점은 사용자 정의 가능성이며 Viper 등의 기능을 사용하면 이는 실제로 문제가 되지 않습니다. 물론 Vim-Script는 자체 수준의 사용자 정의 기능을 제공하며, 선호하는 프로그래밍 언어가 적절한 구문 강조 표시를 제공하지 않는 경우에는 확실히 작성할 수 있지만 Emacs는 궁극적으로 자체 호스팅 lisp 시스템이므로 결국에는 훨씬 더 많은 일을 할 수 있습니다. 더 많이, 더 많이 가지고 놀아보세요. 그냥 그런 도구가 없어요암소 비슷한 영양또는조직 모델Vim에서는 몇 가지 예를 들겠습니다. 간단히 말해서, Emacs는 단순한 편집자가 아니라 실제로 빌어먹을 운영 체제입니다.

텍스트 조작의 경우 완전히 동등하다고 말하고 싶습니다.

관련 정보