emacs

Table of Contents

main

개요

Lisp을 기반으로 만들어진 프로그래밍 가능한 에디터로 기본적인 에디터 기능은 물론 기본적인 프로그래밍 언어 지원과 플러그인 추가 및 Lisp 코드를 수정하여 쉽게 확장 및 변경이 가능합니다.

소개

GNU Emacs는 원본 (PDP-10) Emacs, 리처드 스톨만이 작성한 Emacs의 한 버전입니다. GNU Emacs 다른 에디터 들이 가지고 있는 기능은 물론, 모든 명령이 Lisp으로 작성되었기 때문에 쉽게 확장 및 변경이 가능합니다.

사용자가 버퍼 및 윈도우를 사용할 수 있다면 이맥스의 광범위한 도움말 기능을 쉽게 사용할 수 있습니다. CTRL-h 혹은 F1 은 이맥스의 도움말 기능으로 들어갑니다.

설치 방법

필요 사항

Mac OS

설치

Ubuntu

Emacs 25
$ sudo apt-add-repository -y ppa:adrozdoff/emacs
$ sudo apt update
$ sudo apt install emacs25

Mac OS

$ brew install emacs

설치된 패키지

  • aspell
  • aspell-en
  • dictionaries-common
  • emacs25-bin-common
  • emacs25-common
  • emacs25-el
  • emacsen-common
  • enchant
  • ghostscript
  • gsfonts
  • gstreamer1.0-plugins-base
  • gstreamer1.0-plugins-good
  • gstreamer1.0-x
  • hunspell-en-us
  • imagemagick-common
  • libaa1
  • libasound2
  • libasound2-data
  • libaspell15
  • libavc1394-0
  • libcaca0
  • libcdparanoia0
  • libcupsfilters1
  • libcupsimage2
  • libdv4
  • libenchant1c2a
  • libfftw3-double3
  • libflac8
  • libfribidi0
  • libgeoclue0
  • libgif7
  • libgl1-mesa-glx
  • libgpm2
  • libgs9
  • libgs9-common
  • libgstreamer-plugins-base1.0-0
  • libgstreamer-plugins-good1.0-0
  • libgstreamer1.0-0
  • libharfbuzz-icu0
  • libhunspell-1.3-0
  • libice6
  • libiec61883-0
  • libijs-0.35
  • libjack-jackd2-0
  • libjavascriptcoregtk-3.0-0
  • libjbig2dec0
  • liblockfile-bin
  • liblockfile1
  • liblqr-1-0
  • libm17n-0
  • libmagickcore-6.q16-2
  • libmagickwand-6.q16-2
  • libogg0
  • libopus0
  • liborc-0.4-0
  • libotf0
  • libpaper-utils
  • libpaper1
  • libraw1394-11
  • libsamplerate0
  • libshout3
  • libslang2
  • libsm6
  • libspeex1
  • libtag1v5
  • libtag1v5-vanilla
  • libtext-iconv-perl
  • libtheora0
  • libv4l-0
  • libv4lconvert0
  • libvisual-0.4-0
  • libvorbis0a
  • libvorbisenc2
  • libwavpack1
  • libwebkitgtk-3.0-0
  • libwebkitgtk-3.0-common
  • libwebp5
  • libxcb-glx0
  • libxslt1.1
  • libxt6
  • libxv1
  • libxxf86vm1
  • m17n-db
  • poppler-data

확인

$ emacs --version
25.3

구조

emacs [ command-line switches ] [ files ... ]

옵션

25.3 버전을 기준으로 작성되었습니다.

일반 옵션

  • --file file, --find-file file, --visit file : 파일을 여는 것과 동일합니다.
  • +number : 현재 파일에서 number와 동일한 줄로 이동합니다.
  • +line:column : 현재 파일에서 linecolumn에 해당하는 위치로 이동합니다.
  • --chdir directory : 디렉토리를 변경합니다.
  • -q, --no-init-file :
  • -nl, --no-shared-memory : 공유 메모리를 사용하지 않습니다.
  • --no-site-file : site-wide 파일들을 로드하지 않습니다.
  • -nsl, --no-site-lisp : site-lisp 디렉토리를 load-path로 사용하지 않습니다.
  • --no-desktop :

Do not load a saved desktop.

  • -Q, --quick : -q, --no-site-file, --no-splash 등의 옵션과 동일합니다. 또한 X 리소스를 실행하지 않습니다.
  • --no-splash :

Do not display a splash screen during start-up.

  • --debug-init : init 파일을 로드하는 동안 Emacs Lisp debugger를 활성화합니다. 이 옵션은 init 파일을 디버깅하는데 유용합니다.
  • -u user, --user user : 특정 사용자의 init 파일을 로드합니다.
  • -t file, --terminal file : 터미널 표준입출력 대신 사용할 파일을 정합니다. 이 인자를 사용하려면 반드시 첫번째 인자로 입력되어야합니다.
  • --daemon : 이맥스를 데몬으로 실행합니다. emacsclient 명령어를 이용해서 실행한 이맥스 데몬과 연결할 수 있습니다.
  • --version : 이맥스 버전 정보를 보여주고 종료합니다.
  • --help : 도움말을 보여주고 종료합니다.

Emacs Lisp 관련 옵션

  • -f function, --funcall function : Lisp 함수를 실행합니다.
  • -l file, --load file : Emacs Lisp 파일내 코드를 로드합니다.
  • --eval expr, --execute expr : expr에 작성된 Emacs Lisp 코드를 실행합니다. 여러 함수를 실행하기 위해서는 progn 과 함께 사용해야합니다.

Batch 모드 관련 옵션

  • --batch : 배치 모드를 사용합니다. Emacs Lisp 내에서 실행된 message 들은 stderr로 보내집니다. -l, -f 옵션등을 통해 로드할 파일과 실행할 함수를 인자로 입력받을 수 있습니다.
  • --script file : Emacs Lisp 스크립트를 파일로 실행합니다.
  • --insert file : 파일 데이터를 현재 버퍼에 입력합니다.
  • --kill : 이맥스가 배치 모드일 경우 종료합니다.
  • -L dir, --directory dir : 이맥스가 Lisp 파일을 검색할 디렉토리를 입력받습니다.

with X

  • --name name :
  • -T name, --title name :
  • -r, -rv, --reverse-video :
  • -fn font, --font font :
  • --xrm resources :
  • --color, --color=mode :
  • -bw pixels, --border-width pixels :
  • -ib pixels, --internal-border pixels :
  • -g geometry, --geometry geometry :
  • -lsp pixels, --line-spacing pixels :
  • -vb, --vertical-scroll-bars :
  • -fh, --fullheight :
  • -fs, --fullscreen :
  • -fw, --fullwidth :
  • -mm, --maximized :
  • -fg color, --foreground-color color :
  • -bg color, --background-color color :
  • -bd color, --border-color color :
  • -cr color, --cursor-color color :
  • -ms color, --mouse-color color :
  • -d displayname, --display displayname :
  • -nbi, --no-bitmap-icon :
  • --iconic :
  • -nbc, --no-blinking-cursor :
  • --parent-id xid :
  • -nw, --no-window-system :
  • -D, --basic-display :

사용 예

  • emacs -Q --batch file.org -f org-html-export-to-html : org 파일을 html로 export할 때 쓰입니다.
  • emacs -Q --batch --eval "(+ 1 2)" : Emacs Lisp 코드를 바로 실행할 때 쓰입니다.

참고자료

Date: 2018-02-20

Author: Dongsoo Lee

Created: 2018-12-10 Mon 03:13

Validate