TL;DR

  • 터미널 중심의 여러 작업을 하나의 생태계에서 처리하고 싶어 Neovim에서 Emacs로 전환했으며, Doom Emacs가 Vim 키 바인딩으로 적응을 크게 수월하게 함.
  • Neovim은 텍스트 편집기로서 만족스러웠지만, 웹 탐색·이메일·달력·IRC 등 여러 터미널 프로그램을 하나의 환경으로 통합하는 데는 한계가 있었음.
  • 바닐라 Emacs를 직접 설정하는 데는 시간이 너무 많이 들어 Doom Emacs를 선택했으며, Neovim을 쓰던 사용자에게 적합하다고 판단함.
  • 패키지 설치의 간편함, LSP와 언어 서버 설정, 풍부한 문서, 키 입력 안내 팝업이 Emacs의 장점임.
  • 이메일에는 Mu4e, 문서 정리에는 org-mode, Git 작업에는 Magit을 활용할 계획이며, 전환을 고려하는 사용자에게 Doom Emacs를 추천함.

Neovim에서 아쉬웠던 점

  • 컴퓨터의 여러 작업을 하나의 프로그램에서 처리하는 방식과 텍스트 기반 인터페이스를 선호해 왔으며, 이런 취향은 Emacs 사용자와 잘 맞지만 Emacs를 진지하게 써 본 적은 없음.
  • Neovim은 오랫동안 만족스럽게 사용한 텍스트 편집기임. 인체공학적인 키 바인딩, 패키지 시스템, 높은 사용자화 가능성을 좋아했으며 소프트웨어 개발에 활용하면서 불편을 겪지 않음.
  • lynx 같은 텍스트 기반 브라우저로 터미널에서 웹 정보를 이용하거나, 터미널에서 이메일·달력을 확인하고 IRC 채널에서 대화하는 방식에 관심이 있었음. 자바스크립트를 지원하지 않는 브라우저에 맞지 않는 현대 웹 페이지가 많다는 점은 알고 있지만, 핵심은 터미널 환경 자체에 대한 선호임.
  • 각 작업에 서로 다른 프로그램을 사용하는 방식은 잘 작동했지만, 프로그램마다 별도의 키 바인딩과 사용 규칙을 익혀야 했음. Neovim도 여러 프로그램 중 하나로서 텍스트 파일 편집에만 사용함.
  • 여러 유틸리티를 하나의 큰 소프트웨어 생태계로 통합하는 Emacs 같은 프로그램을 원했음. 여기서 말하는 통합은 하나의 코드베이스가 모든 기능을 직접 구현하는 것이 아니라, Emacs 패키지를 중심으로 한 단일 생태계를 뜻함.

Doom Emacs를 선택한 이유

  • 평소에는 i3나 Hyprland 같은 창 관리자, Neovim 같은 편집기의 사전 구성 설정을 선호하지 않음. 직접 작성한 Neovim 설정에는 필요한 기능만 포함되어 있어 작동 방식을 이해하고 문제를 고치거나 새 기능을 추가할 위치를 알 수 있음.
  • 과거에는 LunarVim과 NvChad 같은 사전 구성 Neovim 환경도 사용했으며, 자주 쓰는 기능과 불필요한 기능, 필요한 기능을 파악한 뒤 직접 설정을 작성함.
  • 바닐라 Emacs도 시도해 기본 기능 일부를 설정했지만, Neovim을 대체해 업무에 사용할 수준까지 구성하는 데는 몇 달이 걸릴 것으로 보였음.
  • 이에 Doom Emacs를 선택함. 조사 과정에서 Doom Emacs가 Neovim에서 넘어오는 사용자에게 적합해 보였으며, 전반적으로 Vim 키 바인딩을 사용함.
  • Doom Emacs 덕분에 전환 과정이 상당히 수월해졌고, 비교적 빠르게 사용을 시작할 수 있었음.

Emacs에서 마음에 드는 점

  • Neovim에 내장 패키지 관리자가 도입된 뒤에는 차이가 줄었지만, Neovim을 처음 사용하던 시점과 비교하면 Emacs의 패키지 설치가 매우 간편함. 광범위한 내장 저장소를 이용할 경우 M-x package-install로 패키지를 설치하면 나머지 절차가 자동으로 처리됨.
  • 특히 Neovim에 내장 LSP 통합이 도입되기 전과 비교해 언어 서버 설정이 간단함. 언어 서버와 구문 강조는 프로그래밍 작업의 핵심 요소이며, 널리 쓰이려는 편집기는 TreeSitter와 LSP를 쉽게, 가능하면 기본 기능으로 지원해야 한다고 봄.
  • Emacs 문서는 Neovim 도움말과 비교하기 어려울 정도로 폭넓음. 특정 키 조합의 기능이나 명령 실행에 필요한 키 조합을 확인하고, 키워드로 명령을 검색하기 쉬움.
  • 바닐라 Emacs에서는 C-h m을 눌러 현재 상황, 즉 메이저 모드에서 사용할 수 있는 작업 목록을 확인할 수 있음.
  • Doom Emacs에서는 Doom 키 바인딩이 명령을 가리는 탓에 C-h m의 효용이 낮아짐. 대신 대부분의 명령이 스페이스 키로 시작하며, 스페이스를 누르고 잠시 기다리면 이어서 입력할 수 있는 키 조합을 팝업으로 보여줌.
  • 키 바인딩을 외우기보다 메뉴를 탐색하는 느낌으로 명령을 찾을 수 있고, 자주 쓰는 조합은 시간이 지나면서 자연스럽게 익숙해짐. Neovim 플러그인에도 비슷한 기능이 있었지만, 사용 전에 플러그인 설치법을 알아야 했음.
  • Neovim 도움말은 Emacs 문서만큼 유용하다고 느끼지 못했으며, 문서 탐색 기능도 Emacs 쪽이 더 뛰어남.

Emacs로 할 계획

  • 가능한 한 많은 작업을 Emacs에서 처리하는 것이 목표임.
  • 현재 설정을 계속하고 사용법에 익숙해지는 중이며, 이 글도 전부 Emacs에서 작성함. Doom Emacs의 기본 Markdown 지원도 매우 뛰어남.
  • 앞으로 이메일 설정을 마무리할 계획임. Gnus를 시도했지만 더 간단해 보이는 Mu4e로 바꿀 가능성이 있음.
  • org-mode를 더 깊이 익히고 Magit을 통해 Emacs에서 Git을 사용하는 방법을 알아볼 계획임.
  • 관련 내용을 블로그에 안내 글로 작성할 수도 있음.

결론

  • Neovim 사용자 관점에서 Emacs를 처음 사용한 경험을 공유함.
  • 전환을 고민하는 사용자에게 Doom Emacs를 추천함. 전환을 훨씬 매끄럽게 해주며 기본 Emacs 키 바인딩은 불편하게 느끼지만, Doom Emacs에서는 사용성과 인체공학성이 개선됨.
  • Dvorak 자판 배열을 사용하므로 Qwerty 키 바인딩에서는 기본 Emacs 키 조합이 더 편할 수도 있다고 봄.