2018년 11월 24일 토요일

Package 설치

Emacs 24 버전 부터 emacs package 관리 기능 제공하여 손쉽게 package 를 설치하고 제거할 수 있음

Package 목록 보기


M-x package-list-packages

단축키 설명
  • i: 설치할 패키지 선택
  • d: 제거할 패키지 선택
  • u: 선택 해제
  • x: 선택한 명령 일괄 수행
  • U: 업그레이드 가능한 패키지 모두 선택

Package 제공 repository 추가


예) $HOME/.emacs 에 추가

(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)



기본 ELPA repository 보다 다양한 package 를 제공하는 melpa repository 추가

팁) emacs 구동시 주로 사용하는 패키지 자동으로 설치


예)

;; install packages automatically on startup
(require 'cl-lib)
(defvar my-packages
  '(yasnippet yasnippet-snippets auto-complete web-mode virtualenvwrapper))
 

(defun my-packages-installed-p ()
  (cl-loop for p in my-packages
           when (not (package-installed-p p)) do (cl-return nil)
           finally (cl-return t)))

(unless (my-packages-installed-p)
  (package-refresh-contents)
  (dolist (p my-packages)
    (when (not (package-installed-p p))
      (package-install p))))



설명:
  • my-packages 변수: 자동으로 설치할 package 이름들 기술
  • my-packages-installed-p 함수: my-packages 목록의 package 들이 설치되었는지 확인




Backup 기능

Backup 파일


참고: https://www.gnu.org/software/emacs/manual/html_node/emacs/Backup.html

원래 파일명 뒤에 ~ 를 붙임

예)
README 는 README~ 파일이 자동 생성

make-backup-files 변수를 t 또는 nil 로 설정하여 emacs 동작 설정


예) $HOME/.emacs 파일에 추가


(setq make-backup-files nil) ; backup 기능 중지




2018년 11월 23일 금요일

Emacs 설치

최신 버전의 emacs 설치를 위해 소스를 받아 빌드

소스 다운로드

https://www.gnu.org/software/emacs/


Ubuntu


GUI toolkit 없이 사용


$ sudo apt install libxpm-dev libjpeg-dev libpng-dev libgif-dev libtiff-dev libgnutls-dev libncurses-dev
$ curl -OL http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-26.1.tar.gz
$ tar xvf emacs-26.1.tar.gz
$ cd emacs-26.1
$ ./configure --with-x-toolkit=no
$ make
$ sudo make install

Note)
  • Ubuntu 18.04 에서 libgnutls-dev 는 libgnutls28-dev 설치


GUI toolkit 사용시 gtk 패키지 설치 필요


$ sudo apt install libgtk2.0-dev

./configure 시 --with-x-toolkit=no 제거



바이너리 다운로드


바이너리 버전을 받으면 바로 실행 가능


Docker container 에서 빌드시 에러


참고: https://stackoverflow.com/a/37561793

**************************************************
Warning: Your system has a gap between BSS and the
heap (23758296 bytes).  This usually means that exec-shield
or something similar is in effect.  The dump may
fail because of this.  See the section about
exec-shield in etc/PROBLEMS for more information.
**************************************************

docker run 할 때 --security-opt seccomp=unconfined 옵션을 추가

예)
$ docker run --rm -it --security-opt seccomp=unconfined emacs-builder-image


Windows


빌드된 바이너리 emacs 를 받아 바로 사용 가능
emacs 다운로드 웹 페이지에서 다운로드



macosx


다운로드: https://emacsformacosx.com/

실행 바이너리 형태