less than 1 minute read

package 설치 코드와 추가 설정 코드를 따로 관리했다. 그러다 보니 init.el 파일 크기가 커져서 분리하고 분리하다 보니 관리 안 되고. 설치와 설정을 같은 코드 블럭으로 관리할 수 있는 use-package 패키지를 설치했다.

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/")
             t)
(package-initialize)
(when (not (package-installed-p 'use-package))
  (package-refresh-contents)
  (package-install 'use-package))

melpa에서 use-package 패키지를 설치한다.

(use-package evil
  :ensure t
  :init
  (setq evil-want-C-u-scroll t)
  :config
  (evil-mode t)
  (evil-set-initial-state 'calendar-mode 'emacs)
  (evil-set-initial-state 'calculator-mode 'emacs)
  (evil-set-initial-state 'git-rebase-mode 'emacs)
  (evil-set-initial-state 'magit-blame-mode 'emacs)
  (setq-default evil-symbol-word-search t))

이런 식으로 사용. :ensure 키워드로 package가 로컬에 없을 때, 다운로드한다. :init 키워드는 패키지 로드 전에 실행할 코드에 사용하고 :config 키워드는 패키지 로드 후에 실행할 코드에 사용한다. 주로 이 세 가지 키워드를 사용한다. 더 많은 기능이 있으며 웬만한 건 use-package 패키지로 처리할 수 있을 것 같다.

init.el 파일이 더 읽기 쉽게 변했다. 만족.

C-x C-s C-x C-c