-
Lisp 비교 : Emacs의 개발 환경Programmer/Emacs 2017. 7. 11. 03:36
Lisp 공통 설정
(use-package paredit :ensure t :diminish paredit-mode :init (use-package paredit-everywhere :ensure t))
Common Lisp
Common Lisp의 major-mode는 'lisp-mode'이다.
보통 확장자 '*.lisp'나 '*.l'와 연결되어 있다. 1
SLIME이라는 강력한 REPL 도구가 있다.
(add-hook 'lisp-mode-hook (lambda () (setq indent-tabs-mode nil) (paredit-mode t) (helm-gtags-mode 1))) (use-package slime :ensure t :commands slime :init (setq inferior-lisp-program (or (executable-find "sbcl") (executable-find "/usr/bin/sbcl") (executable-find "/usr/local/bin/sbcl") "sbcl")) :config (require 'slime-autoloads) (slime-setup '(slime-fancy)) (add-hook 'slime-repl-mode-hook (lambda () (paredit-mode t))))
Scheme
Scheme의 major-mode는 'scheme-mode'이다.
확장자 '*.scm'을 사용하면 이 모드와 자동으로 연결된다.
Common Lisp의 SLIME에 비슷한 것으로는 geiser가 있다.Scheme 설정 예:
(add-hook 'scheme-mode-hook (lambda () (setq indent-tabs-mode nil) (paredit-mode t) (helm-gtags-mode 1))) (use-package geiser :ensure t :init (setq geiser-active-implementations '(guile)) (setq geiser-guile-binary (or (executable-find "guile") (executable-find "/usr/bin/guile") (executable-find "/usr/local/bin/guile") "guile")))
Clojure
최근 주목받고 있는 Lisp 변종인 Clojure의 major-mode는 'clojure-mode'이다.
'*.clj' 파일을 열거나 만들면 이 모드에서 작업할 수 있다.
Clojure 역시 CIDER라는 강력한 REPL 도구를 제공한다.Clojure 설정 예:
(use-package clojure-mode :ensure t :init (use-package flycheck-clojure :ensure t :config (flycheck-clojure-setup)) :config (add-hook 'clojure-mode-hook (lambda () (setq indent-tabs-mode nil) (paredit-mode t) (subword-mode t)))) (use-package cider :ensure t :commands (cider cider-connect cider-jack-in) :config (add-hook 'cider-mode-hook 'eldoc-mode) (add-hook 'cider-repl-mode-hook (lambda () (paredit-mode t) (subword-mode t))))
Emacs Lisp
emacs는 emacs lisp로 만들어졌음으로 당연히 훌륭한 major 모드를 제공한다.
'*.el', '.elisp' 또는 '.emacs' 파일을 열면 자동으로 'emacs-lisp-mode'에 들어간다.
'ielm'은 Emacs Lisp를 위한 훌륭한 REPL 도구이다.Emacs Lisp 설정 예:
(add-hook 'emacs-lisp-mode-hook (lambda () (setq indent-tabs-mode nil) (turn-on-eldoc-mode) (eldoc-add-command 'paredit-backward-delete 'paredit-close-round) (paredit-mode t))) (add-hook 'lisp-interaction-mode-hook (lambda () (paredit-mode t))) (add-hook 'ielm-mode-hook (lambda () (paredit-mode t)))
- 명시적인 지정이 없으면 파일의 확장자(auto-mode-alist 변수에 명시된 확장자)나 내용(shebangs, magic-mode-alist 명시된 파일의 내용 패턴)을 보고 자동으로 major-mode를 결정한다. [본문으로]
- 나의 Emacs 설정 파일 Github: http://github.com/unipro/.emacs.d [본문으로]
'Programmer > Emacs' 카테고리의 다른 글
Emacs의 Programming 관련 공통 설정 (0) 2017.12.14 Emacs의 Scala 개발 환경 (1) 2017.12.14 CentOS 7 emacs-25.1 64bits RPM (0) 2017.01.13 CentOS 5 emacs-24.5 64bits RPM (0) 2015.06.01 CentOS 6 emacs-24.5 64bits RPM (0) 2015.05.28 댓글