IDEmacs: Emacs를 Visual Studio Code처럼 사용하는 구성 세트
(codeberg.org)- Emacs 환경을 주류 IDE처럼 구성해 초보자도 바로 사용할 수 있도록 만든 설정 모음
- VSCode 테마, 탐색기, 탭, 다중 커서, 자동 완성 등 주요 기능을 Emacs에서 재현
-
GUI와 마우스 조작을 기본 지원하며,
custom인터페이스로 설정 가능 - Lisp(Sly/Geiser) 개발자와 비프로그래머 모두를 위한 완전한 편집 환경 제공
- 기존 Emacs 진입 장벽을 낮춰 새 사용자가 쉽게 적응할 수 있는 출발점 제공
IDEmacs 개요
- IDEmacs는 Emacs를 Visual Studio Code나 Sublime Text 같은 GUI IDE처럼 사용할 수 있게 하는 구성 세트
- Emacs의 강력한 기능을 유지하면서도 초보자에게 익숙한 인터페이스 제공
- 주요 대상은 다음 세 그룹
- 다른 IDE에서 넘어온 프로그래머 또는 처음 코딩을 배우는 사용자
- Common Lisp 및 Scheme 초보자 (Sly/Geiser, 구조적 편집 기능 포함)
- Org, Markdown, LaTeX 문서 편집을 원하는 비프로그래머
- Emacs의 기본 경험이 낯선 사용자에게 즉시 사용 가능한 환경을 제공해 진입 장벽을 낮추는 목적
주요 특징
-
GUI 및 마우스 지원
- 대부분의 스타터 키트와 달리 GUI 요소를 숨기지 않음
-
customGUI를 통한 설정 지원 (Elisp 직접 편집 불필요)
-
IDE 스타일 키바인딩
- CUA 모드 기반으로 VSCode 등에서 사용하는 단축키를 광범위하게 재현
-
Evil모드를 사용하는 Spacemacs, Doom과는 달리 GUI 중심 조작
-
완전한 Emacs 배포판 수준의 구성
- 빠르고 설정이 필요 없는 환경
- 주석이 풍부한 Elisp 코드로 구성되어 학습 자료로도 활용 가능
- 목표 수준은 완벽한 모방보다 “충분히 유사한” 경험 제공
VSCode 구성 (진행 중)
- 현재 제공되는 유일한 IDE 구성
- 포함 요소
- VSCode Dark Plus 테마
- Treemacs 사이드바 파일 탐색기
- Centaur Tabs 탭 바
- breadcrumb 파일 경로 표시
- idle-highlight-mode 심볼 자동 강조
- VSCode의 “General”, “Basic Editing”, “Rich Languages Editing”, “Multi-cursor” 단축키 대부분 구현
- 주요 패키지
- 편집:
whole-line-or-region,expand-region,multiple-cursors,smartparens - 버전 관리:
vc,magit,diff-hl,blamer - 자동 완성:
Vertico,orderless,Consult,marginalia,company - Lisp 개발:
sly,geiser,adjust-parens - 기타:
eat(터미널),org-superstar,pdf-tools,undo-tree,helpful,rainbow-mode - 코드 정리는
use-package로 관리
- 편집:
키바인딩 구성
- VSCode의 단축키를 Emacs 명령에 매핑
- 예:
-
C-S-p→ 명령 팔레트 (execute-extended-command) -
C-p→ 파일 열기 (consult-locate) -
C-S-n→ 새 창 (make-frame) -
C-w→ 창 닫기 (idemacs-kill-buffer-noprompt) -
C-,→ 사용자 설정 (customize)
-
- 예:
- 기본 편집, 다중 커서, 탐색, 파일 관리, 표시 제어 등 세부 항목별로 대응 명령 정의
- 일부 단축키는 VSCode와 동작 차이가 있으며, TODO로 표시
참여 및 기여 요청
- 사용자에게 IDEmacs 사용 후 피드백 제공 요청
- 초보자 사용 관찰, Jabber/XMPP 또는 이슈 트래커를 통한 의견 공유
- 개발자에게는 코드 개선 및 기능 확장 참여 권장
관련 프로젝트
-
Mousemacs (GitHub: seamus-brady/mousemacs)
- Emacs를 Sublime Text나 VSCode처럼 작동하게 만든 배포판
- Lisp 학습을 위해 제작되었으며, 마우스 친화적 인터페이스 제공
- 단순한 테마와 함께 Emacs의 모든 기능을 유지
설치 및 실행 방법
- 필수 의존성
-
Emacs 29 이상,
git, DejaVu Sans Mono 폰트
-
Emacs 29 이상,
- 선택 의존성
-
grep,locate또는plocate
-
- 설치 절차
- 저장소 클론
git clone https://codeberg.org/IDEmacs/IDEmacs - 인터넷 연결 상태에서 Emacs 실행
emacs --init-directory=/path/to/IDEmacs/vscode
- 실행 시 필요한 Emacs 패키지를 자동 다운로드
- 저장소 클론
기타
- 현재 VSCode 구성 외 다른 IDE 스타일은 제공되지 않음
- 향후 리소스가 허용되면 새 GUI 구현 가능성 언급
- 원문에 추가 정보 없음
Hacker News 의견
-
VSCode가 쉽다고 생각하는 사람들은 현실 점검이 필요함
처음 실행하면 팝업, 사이드바, 툴팁 등으로 압도당하는 느낌임
나도 Emacs 사용자지만, Emacs가 직관적이라고 주장하지는 않음
다만 VSCode 역시 마법처럼 쉬운 툴은 아니고, 단지 대중적인 선택지일 뿐임- VSCode의 UX는 익숙한 편임
파일 트리, 에디터, 터미널, 탭 완성, 확장 설치 정도가 대부분 사용자의 상호작용 범위임
기본 제공되거나 확장으로 쉽게 추가되지 않으면 대부분 사용하지 않음 - 전문용 툴(IDEs, DAWs, 영상 편집기 등)은 본질적으로 복잡성을 가질 수밖에 없음
하지만 VSCode의 복잡도는 vim이나 Emacs와는 비교할 수준이 아님
짧은 튜토리얼이나 30분 정도 만져보면 충분히 익숙해질 수 있음
반면 neovim은 아예 책 한 권이 필요했음 - 나도 매일 Emacs를 쓰지만 VSCode는 자극적이고 거칠게 느껴짐
최근 RustRover를 시도했는데, 클릭만으로는 원하는 설정을 만들기 어려웠음
IDE의 ‘쉬움’이 생각보다 허상일 수 있음을 느낌 - 1년간 Emacs를 쓰다 포기한 입장에서, 상호운용성(interoperability) 이 훨씬 중요하다고 생각함
표준 파일 선택기나 CUA 단축키 같은 일반적 인터페이스를 지원하는 툴이 많음
그래서 Emacs 대신 Zim-wiki 같은 대안을 쓰며 더 만족 중임 - VSCode의 팝업과 사이드바가 부담스럽다는 의견에 대해, Eclipse 같은 무거운 IDE 경험자라면 오히려 익숙할 수도 있음
반면 tmux나 vi, nano, emacs 중심으로 작업해온 사람이라면 당황할 수 있음
- VSCode의 UX는 익숙한 편임
-
Emacs는 단순한 IDE가 아니라 철학과 자유를 담은 도구임
프로그래밍 중심의 사용 사례에 초점을 맞춘 프로젝트들이 많지만, VSCode에서도 Emacs 키바인딩으로 75%는 구현 가능함
Emacs는 “부품 상자”를 주고 스스로 조립하게 하는 접근이 핵심임
마치 “문명화된 시대의 우아한 무기” 같음- 다만 Emacs Lisp은 함수형 언어라고 보기 어려움
대부분의 데이터 구조가 가변적이며, setq 같은 명령형 함수가 많음
- 다만 Emacs Lisp은 함수형 언어라고 보기 어려움
-
Emacs에서 고정된 창 레이아웃이 실제로 잘 작동하는지 의문임
예전에 시도했을 때 Treemacs 패널이 파일 뷰어 대신 코드 버퍼를 표시하곤 했음 -
최근 Emacs를 IDE로 설정하기가 훨씬 쉬워졌음
내장된 eglot 덕분에 예전보다 elisp 코드가 훨씬 줄었고, Python 설정도 한 줄이면 충분함
그래서 이런 프로젝트는 나 같은 기존 사용자보다는 입문자용 게이트웨이에 가까움- 15년 전 학교에서 Emacs를 썼을 때도 꽤 매끄러웠음
OCaml REPL, 68000 에뮬레이터, gdb 통합까지 큰 설정 없이 가능했음
이후 원격 서버 환경 때문에 vim으로 옮겼지만, 최근 다시 Emacs를 시도하니 패키지 관리가 훨씬 세련되어 있었음
다만 DevOps/SRE 관련 툴링은 여전히 부족함
- 15년 전 학교에서 Emacs를 썼을 때도 꽤 매끄러웠음
-
Spacemacs, Doom 같은 패키지 번들 프로젝트를 좋아함
직접 쓰지는 않지만 새로운 패키지를 발견할 기회를 주고, 설정을 다시 만질 핑계를 만들어줌- 나도 idemacs 페이지의 패키지들을 둘러봤는데, ‘minimap’이라는 이름이 특히 인상적이었음
단순하지만 목적에 딱 맞는 이름이라 미소가 지어졌음
- 나도 idemacs 페이지의 패키지들을 둘러봤는데, ‘minimap’이라는 이름이 특히 인상적이었음
-
Emacs의 UI를 현대적으로 리빌드하는 프로젝트가 있었으면 좋겠음
핵심은 그대로 두되, 시각적으로 구분이 명확하고 눈이 덜 피로한 인터페이스를 원함
예전 Lisp 기반 에디터처럼 Ctrl을 누르면 단축키 안내가 뜨는 기능도 좋았음- 오히려 반대 의견임
UI는 괜찮고, 단일 스레드 구조와 잦은 멈춤 현상이 더 시급한 문제라고 생각함
하루에 한 번은 C-g를 눌러야 하는 현실이 개선되어야 함 - 완전히 같은 건 아니지만, Common Lisp 기반의 Lem을 참고할 만함
curses/SDL2 위에서 동작하며 Emacs 스타일을 계승함 - 아마 which-key를 말하는 것 같음
예전엔 외부 패키지였지만 최근 Emacs 본체에 통합됨
관련 커밋 링크 - 가능한 한 현재 UI를 유지하고 싶음
그래픽 환경이든 터미널이든 동일한 모습으로 동작하는 점이 큰 장점임
Treemacs가 어디서나 같은 모양으로 보이는 게 특히 마음에 듦
- 오히려 반대 의견임
-
OniVim v2가 성공하지 못한 게 아쉬움
네이티브 IDE이면서 VSCode 플러그인 시스템을 완전히 지원했음
OniVim v2 아카이브 링크- OniVim은 vim의 핵심 기능을 libvim이라는 별도 라이브러리로 분리했음
다른 GUI 프론트엔드 개발자에게도 유용했을 것임
Neovim은 RPC 방식으로 통신하지만, 성능은 충분히 빠름
VSCode용 Neovim 플러그인도 이 구조 덕분에 완전한 vim 경험을 제공함 - 다만 대상 사용자가 애매했음
Vim 유저는 Electron 기반의 입력 지연과 EULA에 불만일 것이고, VSCode 유저는 Vim에 관심이 없음
- OniVim은 vim의 핵심 기능을 libvim이라는 별도 라이브러리로 분리했음
-
25년 넘게 Emacs를 써왔는데, 새 설치 시 가장 먼저 하는 일은 GUI 요소 비활성화임
메뉴나 툴바는 전혀 쓰지 않음- VSCode 사용자는 특히 마우스 중심으로 작업하지만, Emacs의 강점은 Lisp 머신을 원하는 대로 수정할 수 있다는 점임
- 나도 15년 넘게 Emacs를 쓰며 전적으로 키보드로만 조작함
하지만 내 지도교수는 기본 Emacs를 마우스로 사용하며 LaTeX 작업을 했는데, 꽤 신선한 경험이었음
-
Doom Emacs를 계속 쓸 예정이지만, 이런 시도는 반가움
Emacs에는 Vertico 같은 혁신적 UI 플러그인이 많지만, 기본 경험은 여전히 부족함
이런 프로젝트가 Emacs를 더 많은 사람에게 접근 가능하게 만든다면 좋은 일임 -
15년 넘게 Emacs를 써왔는데, 내 유일한 바람은 VSCode처럼 원격 편집이 가능한 클라이언트-서버 모드임
지연이 큰 환경에서도 잘 작동하는 솔루션이 있으면 좋겠음
없으면 직접 만들어볼 생각임
그래도 VSCode의 Python 통합은 꽤 괜찮음- 두 가지 접근이 있음
- 로컬에서 Emacs를 실행하고 Tramp로 원격 파일을 편집
- 원격 서버에서 Emacs를 터미널 모드(-nw)로 실행
- 두 가지 접근이 있음