Computer >> 컴퓨터 >  >> 시스템 >> Linux

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

Doom Emacs는 Emacs를 쉽고 부담 없이 시작할 수 있도록 돕는 것을 목표로 하는 배포판입니다. Emacs 자체는 수백 페이지에 달하는 방대한 문서로 다양한 기능을 설명하고 있어서, 처음 접하는 사용자에게는 상당히 어렵게 느껴질 수 있습니다.

이러한 문서 중심의 접근 방식은 이미 Emacs에 익숙한 사용자나 꼼꼼하게 문서를 읽어가는 사람에게는 유용합니다. 하지만 단순히 한번 써보고 싶은 입문자에게는 큰 도움이 되지 않습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

Doom Emacs는 불필요한 요소를 덜어내고 Emacs의 핵심 강점만을 추려낸 경험을 제공합니다. 기본적인 작업을 하기 위해 매번 매뉴얼을 찾아볼 필요 없이, Emacs가 지닌 강력한 확장성을 그대로 활용할 수 있습니다. 그 결과 사용자의 필요에 맞게 손쉽게 변경하고 수정할 수 있는 Emacs 환경이 완성됩니다.

Doom Emacs 설치는 비교적 간단합니다. 사전 준비물은 딱 세 가지입니다.

  • 순수(바닐라) Emacs 27.1 이상
  • ripgrep
  • Git

Emacs와 ripgrep 설치하기

Emacs와 ripgrep은 주요 리눅스 배포판의 거의 모든 저장소에서 제공됩니다. 예를 들어 Debian이나 Ubuntu 21.10에서는 apt를 사용해 다음과 같이 설치할 수 있습니다.

sudo apt install emacs-gtk ripgrep

Arch Linux에서는 pacman을 사용합니다.

sudo pacman -Syu emacs ripgrep

Fedora에서는 dnf를 사용합니다.

sudo dnf install emacs ripgrep

Void Linux에서는 xbps를 사용합니다.

sudo xbps-install emacs-gtk2 ripgrep

여기서는 Void Linux 시스템에 Emacs와 ripgrep을 설치하는 과정을 예시로 진행하겠습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

주의할 점은 Emacs에는 여러 종류의 빌드 버전이 있다는 것입니다. 대부분의 경우 패키지 관리자가 적절한 버전을 알아서 선택해주지만, 드물게 이 과정에서 문제가 생기기도 합니다.

따라서 어떤 버전을 설치했는지 확인하는 것이 좋습니다. 우리가 설치해야 하는 것은 GUI 환경에서 실행 가능한 Emacs 버전으로, 선택지는 다음과 같습니다.

  • X11
  • GTK-2
  • GTK-3

설치가 끝났다면 이제 Git 설치로 넘어갑니다.

Git 설치하기

Doom Emacs를 설치하려면 인터넷에서 원격 코드 저장소를 가져와야 합니다. 이를 위해 Git을 설치해야 하는데, Git이 있으면 코드를 즉시 복제할 수 있을 뿐만 아니라, 무엇보다 메이저 버전 간 업그레이드도 손쉽게 처리할 수 있습니다.

Emacs와 마찬가지로 Git 역시 모든 리눅스 배포판에서 흔히 볼 수 있습니다. Debian과 Ubuntu에서는 apt로 설치합니다.

sudo apt install git

Arch Linux에서는 pacman을 사용합니다.

sudo pacman -Syu git

Fedora에서는 dnf를 사용합니다.

sudo dnf install git

Void Linux에서는 xbps를 사용합니다.

sudo xbps-install git

여기서는 Void Linux에 Git을 설치했습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

Doom Emacs 설치하기

Doom Emacs 설치를 위해 실행해야 할 명령어는 몇 개 되지 않습니다.

git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d

이 명령은 Doom Emacs 저장소를 내 컴퓨터로 가져오는 Git 명령입니다.

  • clone 옵션은 명령 실행 시점의 최신 저장소를 그대로 복사한다는 의미입니다.
  • --depth 옵션은 저장소의 히스토리를 최신 커밋으로 잘라내어, 용량과 시간을 아껴줍니다.

이 명령은 저장소를 Emacs의 기본 설정 디렉터리에 저장합니다. 따라서 기존에 같은 이름의 디렉터리가 있다면 충돌이 발생할 수 있으니, 아래 명령으로 해당 디렉터리가 없는지 먼저 확인하고 삭제하세요.

rm -rf /home/$USER/.emacs.d/

이후 다음 명령으로 실제 설치를 시작합니다.

/home/$USER/.emacs.d/bin/doom install
Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드 Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

이 명령은 기존 Emacs 위에 Doom Emacs를 얹어 설치하는 과정을 수행합니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

설치 후 초기 설정

설치 후에는 나중에 문제가 발생하지 않도록 몇 가지 추가 작업이 필요합니다.

먼저 PATH 환경 변수에 "/home/$USER/.emacs.d/bin/" 디렉터리를 등록해야 합니다. "/home/$USER/.profile" 파일에 다음 줄을 추가하세요.

export PATH=$PATH:$HOME/.emacs.d/bin

이렇게 하면 PATH 변수에 Doom의 bin 디렉터리가 포함됩니다. 이후 로그아웃 후 다시 로그인하여 환경 변수를 새로 불러오면 됩니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

PATH 변수가 올바르게 설정되었는지 확인하려면 다음 명령을 실행합니다.

doom doctor

이 명령은 설치가 제대로 되었는지 검증해줍니다. 설치 과정에 문제가 있다면 doom doctor가 어디가 잘못되었는지 알려줍니다.

Doom 유틸리티: Doom Emacs 관리의 필수 도구

doom doctor는 doom 유틸리티가 제공하는 여러 기능 중 하나일 뿐입니다. doom 유틸리티는 Doom Emacs를 수정, 업데이트, 복구할 수 있게 해주는 핵심 프로그램입니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

반드시 알아두어야 할 주요 명령은 다음과 같습니다.

  • doom doctor: 초기 설치 상태에 일관성 문제가 없는지 점검합니다. Doom Emacs 사용 중 문제가 생겼을 때 특히 유용하며, Doom 관련 디렉터리와 설정 전반을 훑으며 잠재적 오류를 찾아냅니다.
  • doom upgrade: 설치된 환경을 손쉽게 최신 버전으로 업그레이드합니다. 저장소의 업데이트를 확인하고 최신 버전과 동기화하며, 버전 간 마이그레이션도 처리해줍니다. 이를 위해 현재의 Doom 설정을 정리한 뒤 업그레이드를 진행합니다.
  • doom purge: 설치된 오래된 패키지와 모듈을 정리합니다. 여러 패키지를 삭제했다면 더 이상 사용되지 않는 의존성들을 제거해줍니다. -g 플래그와 함께 실행하면 기존 저장소를 압축하는 기능도 있습니다.
  • doom sync: 사용자 정의 설정을 반영할 때 사용합니다. Doom Emacs 설치 시 개인 설정을 위한 별도 디렉터리인 "/home/$USER/.doom.d/"가 생성되는데, sync를 실행하면 .doom.d의 설정이 .emacs.d 쪽에 적용됩니다.

Doom Emacs 설정하기

.doom.d 디렉터리는 Doom의 모든 설정이 모여 있는 곳으로, 세 개의 파일로 구성되어 있습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드
  • packages.el: 어떤 패키지를 어디서 설치할지 지정하는 파일입니다.
  • config.el: 사용자 정의 설정을 작성하는 파일입니다. Doom 자체 설정과 추가로 설치한 패키지의 설정이 모두 여기에 들어갑니다.
  • init.el: Doom Emacs의 심장부라 할 수 있는 파일입니다. 배포판이 제공하는 모든 기능을 여기서 켜거나 끌 수 있습니다.

Doom 모듈

Doom Emacs는 150개가 넘는 모듈을 제공하며, 원하는 모듈만 골라 활성화하면 됩니다. 이를 통해 Doom을 자신만의 컴퓨팅 환경으로 자유롭게 꾸밀 수 있습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

모듈을 추가하거나 제거하는 방법은 간단합니다. ".doom.d/init.el" 파일의 doom! 함수를 수정하기만 하면 됩니다. 기본 문법은 다음과 같습니다.

(doom! :checkers
       (syntax)
       :editor
       (evil)
       :lang
       (org +journal))

모듈을 활성화하려면 먼저 해당 카테고리를 지정해야 합니다. 위 예시에서 syntax 모듈을 추가하려면 checkers 카테고리를 먼저 선언한 뒤 그 안에 넣으면 됩니다.

또한 각 모듈에는 특정 기능을 켜고 끄는 플래그(flag)가 있습니다. 이는 Gentoo의 USE 플래그와 유사한 개념으로, 원하는 기능만 활성화해 프로그램을 세밀하게 조정할 수 있게 해줍니다.

플래그를 추가하려면 "+" 기호 뒤에 플래그 이름을 붙이면 됩니다. 위 예시에서는 org 모듈에 journal 플래그를 추가해 저널 기능을 활성화했습니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

수정이 끝나면 doom sync를 실행해 새 설정으로 Doom Emacs를 다시 초기화하세요.

추가 패키지 설치 방법

Doom Emacs는 설치 시점에 기본적으로 여러 패키지를 함께 제공하지만, 저장소에서 추가 소프트웨어를 손쉽게 더 설치할 수도 있습니다. 이때 ".doom.d/packages.el" 파일의 package! 함수를 사용합니다.

Doom Emacs란 무엇이며, 리눅스에서 설치하고 설정하는 완벽 가이드

Doom에서 패키지를 설치하는 방법은 여러 가지가 있지만, 가장 일반적인 방식은 ELPA나 MELPA 같은 공식 저장소에서 가져오는 것입니다. 이 경우 packages.el에 다음 Lisp 코드를 추가하기만 하면 됩니다.

(package! name-of-package)

이렇게 하면 package! 함수가 지정한 패키지를 일반적인 저장소 전체에서 찾아 설치합니다.

만약 Emacs 저장소 어디에도 존재하지 않는 패키지라면, Git 저장소에서 직접 설치할 수도 있습니다.

(package! name-of-git-package
          :recipe (:host github :repo "username/package")

이 코드는 package! 함수에게 GitHub의 "username/package" 저장소에서 해당 패키지를 가져오라고 지시합니다.

원격 저장소의 특정 위치에서만 패키지를 가져오도록 지정할 수도 있습니다.

(package! another-git-package
          :recipe (:host github :repo "username/package"
                        :files ("package.el" "path/of/*.el")))

이 방법은 하위 디렉터리에 여러 패키지가 정리되어 있는 저장소에서 설치할 때 유용합니다. 이렇게 하면 원하는 파일만 골라 패키지로 설치할 수 있습니다.

작업이 끝나면 doom sync를 실행해 Doom Emacs를 다시 초기화하는 것을 잊지 마세요.

축하합니다! 이제 Doom Emacs의 기본 설치를 마쳤고, 동작 원리와 설정·확장 방법까지 기본기를 갖추셨습니다. 리눅스에서 생산성 앱을 찾고 계시다면 아래 관련 글도 참고해보세요.

자주 묻는 질문

1. Doom Emacs를 설치했는데, 열면 빈 화면만 나옵니다.

대부분 .doom.d 디렉터리에 문제가 있어 Doom Emacs가 설정을 불러오지 못하는 경우입니다. 해결 방법 중 하나는 .doom.d 디렉터리가 존재하는지, 그리고 init.el, packages.el, config.el 세 파일이 모두 있는지 확인하는 것입니다.

또한 생성된 init.el 파일이 잘못 작성되었거나 doom! 함수 블록이 포함되어 있지 않은 경우에도 이런 현상이 발생할 수 있습니다. 이때는 실행하려는 모듈을 담은 doom! 함수 블록을 직접 작성해주어야 합니다.

2. package.el로 패키지를 관리하고 있는데, Doom Emacs에서도 그대로 쓸 수 있나요?

아니요. Doom Emacs는 자체적인 패키지 관리 방식을 사용하기 때문에, 추가 소프트웨어 설치 시에는 Doom이 제공하는 package! 함수를 사용해야 합니다.

3. Doom Emacs에 설치한 패키지를 더 이상 사용하고 싶지 않습니다. 어떻게 삭제하나요?

Doom Emacs에서 패키지를 제거하는 것은 아주 간단합니다. .doom.d/packages.el에 다음 Lisp 코드를 작성하세요.

(package! some-package :disable t)

그런 다음 doom sync를 실행해 Doom Emacs를 다시 불러오면, 해당 패키지가 비활성화·제거됩니다.