vim์์๋ ๊ธฐ๋ณธ ๋ชจ๋๊ฐ ํญ์ ํธ์ง ๋ชจ๋์ด๊ณ ์ธ์์๋ mode๊ฐ ๊ณ ์ ๋์ด ์๋ ๋ฐ๋ฉด์, emacs์์๋ ์ฃผ ๋ชจ๋์ ๋ถ ๋ชจ๋๋ฅผ ์
๋ง์ ๋ง๊ฒ ๋ฐ๊พธ์ด ์ธ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๋ text-mode๋ผ๋ ํ
์คํธ ๋ฌธ์๋ฅผ ํธ์งํ๊ณ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ฃผ ๋ชจ๋๋ฅผ ์ฐ๋ฉด์, ๊ธ์์ ์์ ๋ฐ๊ฟ์ฃผ๊ฑฐ๋ ๋ค์ฌ์ฐ๊ธฐ ๋ด์ด์ฐ๊ธฐ๋ฑ์ ์ฌ์ฉ์ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ํํ๋ ๋ถ ๋ชจ๋๋ฅผ ์ธ ์ ์์ต๋๋ค.
- ํ์์ ๋๋ฌด IDE์ ์์กดํ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ๋ฒ์ฉ์ ์ธ TextEditor๋ฅผ ์ฌ์ฉํด๋ณด์๋ ๊ฒฐ์ฌ์ ํ๊ณ ์ฐ๋๋ฐ ์ด๋ ค์ ๋ ์ฌํญ์ ๊ธฐ๋กํ๋ ค๊ณ ํฉ๋๋ค.
- emacs ๋ฅผ ์ค๋ซ๋์ ์จ์จ ์
์ฅ์์ IDE ์ ๋๋ ์์กดํด๋ ๋ฉ๋๋ค. OS ์์กด์ ๋ฒ์ด๋๋๊ฒ ๋ ์ค์ํ๊ฒ ๊ฐ์ต๋๋ค.
- emacs ๋ฅผ ์ค๋ซ๋์ ์จ์จ ์
์ฅ์์ IDE ์ ๋๋ ์์กดํด๋ ๋ฉ๋๋ค. OS ์์กด์ ๋ฒ์ด๋๋๊ฒ ๋ ์ค์ํ๊ฒ ๊ฐ์ต๋๋ค.
- Download๋ ์ฌ๊ธฐ์ ํ๋ฉด ๋ฉ๋๋ค. ์๋์ฐ์ฆ ์ฉ์ด๋ผ ๋ฒ์ ์ด ์ฝ๊ฐ ๋ฎ๋ค์.
- ์ต์ mac ๊ฐ๋ฅํ ubuntu ์์ ์ฌ์ฉํ๋๊ฒ ์ ์ ๊ฑด๊ฐ์ ์ข์ต๋๋ค. ecb, cedet ๋ฑ์ ์ปค๋งจ๋ ํ๋ฒ์ ์ค์น ํ๋๋, ์ฌ๋ฌ๋ฒ ๊ฑฐ์ณ์ ์ค์นํ๋๋๋ ํ๋๊ณผ ๋
์ฐจ์ด์
๋๋ค.
์๋์ฐ๋ ๊ฐ๋ฐ์์ OS ๊ฐ ์๋๋๋ค
Emacs Mode ¶
Major Mode ¶
Minor Mode ¶
Tramp ¶
- emacs ํ๊ฒฝ ๊ทธ๋๋ก remote/ssh/docker/sudo ๋ฑ์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค.
- emacs ๋ dired mode ๋ ํ์ผ์ ๊ด๋ฆฌํ๊ณ browse ํ ์ ์๋๋ฐ, tramp ๋ฅผ ํ์ฉํ์ฌ remote ๋ฅผ local ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- shell-mode ์๋ ์ ๊ฒฐํฉํ์ฌ remote ์ ์๋ก ๋ฐ๋ก ๋จ์ด์ง ์๋ ์์ต๋๋ค.
- ์๋ ๋ถํฐ multi-hop ์ ์๋ ์ฒ๋ฆฌํ ์ ์์์ต๋๋ค.
ssh ์ค์ ์ด ๋ ์ฝ์ต๋๋ค
- emacs ๋ dired mode ๋ ํ์ผ์ ๊ด๋ฆฌํ๊ณ browse ํ ์ ์๋๋ฐ, tramp ๋ฅผ ํ์ฉํ์ฌ remote ๋ฅผ local ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- tramp ๋ก sudo ์ฌ์ฉํ๊ธฐ : M-x-f
/sudo::/etc/
- tramp ๋ก ssh ์ฌ์ฉํ๊ธฐ : M-x-f
/ssh:you@remotehost|sudo:remotehost:/path/to/file
Python ์ฌ์ฉํ๊ธฐ ¶
์ด๋ฅผ ์ํด ๋จผ์ PythonMode๋ฅผ Downloadํฉ๋๋ค.
๋ฌผ๋ก Python์ด ์ด๋ฏธ ์ค์น๋์ด์์ด์ผ ํฉ๋๋ค.
๋ฌผ๋ก Python์ด ์ด๋ฏธ ์ค์น๋์ด์์ด์ผ ํฉ๋๋ค.
Python์ Emacs์์ ์ฐ๋ ค๋๊น ํ๊ฒฝ๋ณ์ ์ค์ ํ๋๋ฐ ํ ๋ฒ ์ฝ์งํ๊ณ ๊ฒฝ๋ก ์ก์์ฃผ๋๋ฐ ๋ ์ฝ์ง ํ์ต๋๋ค.
Emacs๋ HOME ์ด๋ผ๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ด์ฉํด์ ์ฌ์ฉ์ ์ค์ ํ์ผ์ธ .emacs(์ด๋ฆ ์์ ์ ํ๋ ์์ต๋๋ค.)ํ์ผ์ ์ฝ์ด๋ค์
๋๋ค. ์ด ํ๊ฒฝ๋ณ์์๋ ๊ฒฝ๋ก๊ฐ ๋ค์ด๊ฐ๋๋ฐ ๊ทธ ๊ฒฝ๋ก์ ์ฌ์ฉ์ ์ค์ ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค. ์ ์ดํ->์์คํ
->๊ณ ๊ธ->ํ๊ฒฝ๋ณ์ ์์ HOME์ด๋ผ๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ถ๊ฐํ๊ณ , ๊ทธ ๊ฒฝ๋ก ๋ฐ์ .emacs๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. .emacs ํ์ผ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋ญ๋๋ค.
(autoload 'python-mode "python-mode" "Python Mode." t) (add-to-list 'auto-mode-alist '("\.py\'" . python-mode)) (add-to-list 'interpreter-mode-alist '("python" . python-mode))
๊ฒฝ๋ก ์ก์์ฃผ๊ธฐ๋ ์์ ํ ์ฃผ๋ณ์ง์์ด ๋ถ์กฑํ ํ์ด์์ต๋๋ค. ํ์ด์ ํด๋๊ฐ ์๋์ฐ ํ๊ฒฝ๋ณ์์ธ PATH์ ๋ฑ๋ก๋์ง ์์์ ๊ทธ๋ฌ์ต๋๋ค. ์ด ์ญ์ ์ ์ดํ->์์คํ
->๊ณ ๊ธ->ํ๊ฒฝ๋ณ์ ์์์ ์์ ํ ์ ์์ต๋๋ค.
.emacs ¶
- ์ด๋งฅ์ค ์ค์ ํ์ผ์
๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์์ HOME ๋๋ ํ ๋ฆฌ ๋ฐ์ ์ ์ฅ๋ฉ๋๋ค.
- Emacs ์ฒ์ ์ค์น ์์๋ ํด๋น ํ์ผ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ด๋ด ๋๋ ๋นํฉํ์ง ๋ง์๊ณ HOME ๋๋ ํ ๋ฆฌ ๋ฐ์ .emacs๋ผ๋ ์ด๋ฆ์ผ๋ก ํ์ผ์ ๋ง๋ค์ด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
- GNU Emacs ์ฌ์ฉ์ Windows 7 ํ๊ฒฝ์์ c:\Users\UserName\AppData\Roaming ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
- .emacs ํ์ผ์ ์์ฑํ๊ฑฐ๋ ํธ์งํ ํ์๊ฐ ์์ ๊ฒฝ์ฐ์๋ C-x-f ~/.emacs๋ก ํด ์ฃผ๋ฉด Windows ํ๊ฒฝ์์๋ ์์์ HOME ๋๋ ํ ๋ฆฌ ๋ฐ์ ๋ง๋ค์ด ์ค๋๋ค.
- .emacs ํ์ผ์ ์์ฑํ๊ฑฐ๋ ํธ์งํ ํ์๊ฐ ์์ ๊ฒฝ์ฐ์๋ C-x-f ~/.emacs๋ก ํด ์ฃผ๋ฉด Windows ํ๊ฒฝ์์๋ ์์์ HOME ๋๋ ํ ๋ฆฌ ๋ฐ์ ๋ง๋ค์ด ์ค๋๋ค.
- ntemacs ์์๋ C:\Documents and Settings\UserName\Application Data ์ ์ ์ฅ๋ฉ๋๋ค.
.emacs.d ¶
- Emacs์์ ๋ฐ๋ ๋ช๋ช ํ์ผ๋ค์ด ๋ค์ด๋๋๋ก ์ง์ ๋ ๋๋ ํ ๋ฆฌ์
๋๋ค.
- ์ฃผ๋ก Emacs Wiki์์ ๋ฐ์ ํ์ผ๋ค์ด๋ ๋ค์ํ .el ํ์ผ๋ค์ ๋ฃ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
- ELPA์์ ๋ฐ์ ํ์ผ๋ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์ชฝ์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค.
emacs์ ์ ์ฉํ ํ์ฅ ๊ธฐ๋ฅ ¶
ELPA ¶
- Emacs Package Manager
- Emacs์ ํ์ฅ ๊ธฐ๋ฅ์ .el(Emacs Lisp ํ์ฅ์) ํ์ผ์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ๋ฐ๋ผ์ .el ํ์ผ๋ง ์์ผ๋ฉด ํ์ฅ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ฐ, ELPA ์ด์ ๊น์ง๋ ํต์ผ๋ .el ํ์ผ์ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ด ์์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๋ฉด ์ง์ ํ์ผ์ (EmacsWiki๋ github์ด๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก) ๋ค์ด๋ฐ์์ผ ํ๋ ๋ถํธํจ์ ๊ฐ์ํด์ผ ํ๋ค. ELPA๋ ์ด๋ฌํ ํฉ์ด์ง ํ์ผ(= ํ์ฅ ๊ธฐ๋ฅ)๋ค์ ํตํฉํด์ ๋ฐ์ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์๋ค.
- ์ค์น
- Emacs ๋ฒ์ 24 ์ดํ๋ถํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด ์์.
- Emacs 23๊น์ง
- package.el์ ์ปดํจํฐ์ ์ ์ฅํ๋ค. ์ ์ฅ ์์น๋ ์๋ฌด ๊ณณ์ด๋ ์๊ด ์์ง๋ง ๋๋๋ก์ด๋ฉด HOME ๋๋ ํ ๋ฆฌ์ .emacs.d ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์ ๋ฃ์ด ์ฃผ๋๋ก ํ์.
- .emacs ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋๋ค.
- package.el์ ์ปดํจํฐ์ ์ ์ฅํ๋ค. ์ ์ฅ ์์น๋ ์๋ฌด ๊ณณ์ด๋ ์๊ด ์์ง๋ง ๋๋๋ก์ด๋ฉด HOME ๋๋ ํ ๋ฆฌ์ .emacs.d ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์ ๋ฃ์ด ์ฃผ๋๋ก ํ์.
- Emacs ๋ฒ์ 24 ์ดํ๋ถํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด ์์.
(load-file "~/.emacs.d/package.el") (require 'package) ; Add package-archives (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) ; Initialize (package-initialize)
- ์ฌ์ฉ๋ฒ
- M-x package-list-packages๋ก ๋ค์ด ๋ฐ์ ์ ์๋ Package list๋ฅผ ๋ณผ ์ ์์.
- ํด๋น ํจํค์ง ์ค์์ i(install)๋ก ์ค์นํ ํจํค์ง์ ์ ํ, d(delete)๋ก ์ง์ธ ํจํค์ง ์ ํ, x(execute)๋ก ์ ํ๋ ์์
๋ค ์คํ.
- ๊ฐ์ ์ญ์ : d -> e(ํน์ x)๋ก ํด๋น ํจํค์ง๋ฅผ ์ง์ธ ์ ์๊ธด ํ๋ฐ ์ ๋๋ก ์ง์์ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์ข ์๋ค(...). ๊ทธ๋ด ๊ฒฝ์ฐ๋ ํด๋น ํ์ผ์ด ELPA์ ํด๋ ์์ ๋ค์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ~/.emacs.d/elpa์ ๋ค์ด๊ฐ์ ํด๋น ํจํค์ง์ ํด๋๋ฅผ ์ง์๋ฒ๋ฆฌ๋ฉด ๋๋ค. ๊ทธ ํ Emacs๋ฅผ ๋ค์ ๊ธฐ๋ํด์ M-x package-list-packages๋ฅผ ๋ณด๋ฉด ํด๋น ํจํค์ง๊ฐ ์ค์น ํญ๋ชฉ์์ ์ง์์ง ๊ฒ์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
- M-x package-list-packages๋ก ๋ค์ด ๋ฐ์ ์ ์๋ Package list๋ฅผ ๋ณผ ์ ์์.
- ์ถ์ฒ ํจํค์ง : Anything or helm, auto-complete, tabbar, ecb, yasnippet
CEDET ¶
CEDET์ด๋?
์ฐธ๊ณ #2. lisp์ฝ๋์ค์์ load file ํ๋ ๋ถ๋ถ์ ๋๊ฐ์ ๊ฒฝ์ฐ๋(load-file "~/.emacs.d/cedet/common/cedet.el")๊ณผ ๊ฐ์ด ์ ์๋ค. ๊ฒฝ๋ก์ ~/๋ ๋๋ ์๋์ฐ์์ cygwin์ ํตํด์ emacs๋ฅผ ์ฐ๊ณ ์์ด์ ํ๊ฒฝ๋ณ์ HOME์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ๊ฒ ํํํ ์ ์๋ค.
์ฐธ๊ณ #3. lisp ์ฝ๋์ (setq byte-compile-warning nil)์ ์ด ์ฝ๋ ๋ฐ๋ก ์์ ์ฃผ์์ ํด๋นํ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์์ฑํ ์ฝ๋์ด๋ค. ํน์ ์ด ์ฝ๋๋ก ์ธํด ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ํ๋ค๋ฉด, ์ด๋ฅผ ์ง์ฐ๊ฑฐ๋ ๊ตฌ๊ธ๋ง์ ํตํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐฟ๊ธธ ๋ฐ๋๋ค.ใ ใ
collection of emacs development tool์ ์ฝ์๋ก์, makeํ์ผ์ ๋ง๋ค๊ฑฐ๋ automakeํ์ผ ๊ตฌ์ฑ์ ๋์์ ์ฃผ๊ณ , compileํ๊ธฐ ์ฝ๋๋ก ๋์์ฃผ๋ ๋ฑ, emacsํ๊ฒฝ์ ๋์ฑ ํ์ฑํ๊ฒํ๋๋ฐ ๋์์ ์ฃผ๋ ํ์ฅ ๊ธฐ๋ฅ์ด๋ค.
์ค์ (์ค์น)๋ฐฉ๋ฒ- cedet github์ ๋ค์ด๊ฐ์ ์์ถํ์ผ์ ๋ฐ๋๋ค.(http://sourceforge.net/projects/cedet/)
- cedet์์ถ์ .emacs.dํด๋ ํน์ ์ํ๋ ๊ณณ์ ํผ๋ค.
- cedet์์ถ์ ํผ๊ณณ์ ์ ๊ทผํ์ฌ $make ๋ช
๋ น์ด๋ฅผ ํตํด ๋น๋ ์์ผ์ค๋ค.
- emacs ์ค์ ํ์ผ์ธ .emacs ํน์ init.el ํ์ผ์ ์ค์นํ cedet์ ๋ก๋ํ๊ธฐ์ํ elisp์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์จ์ค๋ค.
;; Load CEDET ;; 'warning: cedet-called-interactively-p called with 0 arguments, but requires 1' error repairing (setq byte-compile-warnings nil) ;; See cedet/common/cedet.info for configuration (load-file "~/cedet.elํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์จ๋ฃ๋๋ค. cedet์์ถ์ ํผ ํด๋์์ common์ cedet.el์ด ์๋ค.") ;; Enable EDE (Project Management) features (global-ede-mode 1) ;; *This enalbes the database and idle repasitiory (semantic-load-enable-minimum-features)์ฐธ๊ณ #1. lisp์ฝ๋์์ ;;๋ ์ฃผ์์ด๋ค.
์ฐธ๊ณ #2. lisp์ฝ๋์ค์์ load file ํ๋ ๋ถ๋ถ์ ๋๊ฐ์ ๊ฒฝ์ฐ๋(load-file "~/.emacs.d/cedet/common/cedet.el")๊ณผ ๊ฐ์ด ์ ์๋ค. ๊ฒฝ๋ก์ ~/๋ ๋๋ ์๋์ฐ์์ cygwin์ ํตํด์ emacs๋ฅผ ์ฐ๊ณ ์์ด์ ํ๊ฒฝ๋ณ์ HOME์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ๊ฒ ํํํ ์ ์๋ค.
์ฐธ๊ณ #3. lisp ์ฝ๋์ (setq byte-compile-warning nil)์ ์ด ์ฝ๋ ๋ฐ๋ก ์์ ์ฃผ์์ ํด๋นํ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์์ฑํ ์ฝ๋์ด๋ค. ํน์ ์ด ์ฝ๋๋ก ์ธํด ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ํ๋ค๋ฉด, ์ด๋ฅผ ์ง์ฐ๊ฑฐ๋ ๊ตฌ๊ธ๋ง์ ํตํด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐฟ๊ธธ ๋ฐ๋๋ค.ใ ใ
ECB ¶
ECB๋?
emacs code browser์ ์ฝ์๋ก์, ํ๋ก์ ํธ ํ์ผ management๋, ๋๋ ํ ๋ฆฌ management๋ฑ์ ๋์์ฃผ๋ ํ์ฅ ๊ธฐ๋ฅ์ด๋ค.
์ค์ (์ค์น)๋ฐฉ๋ฒ- ecb ์ค์น์ ์ ์ฐ์ cedet์ค์น๊ฐ ์ฐ์ ๋์ด์ผํ๋ค. cedet์ ์ด ๊ธ์ ์ด ์์ ์ 1.1 ๋์ ๋ฒ์ ผ์ด ์ต์ ๋ฒ์ ผ์ด๋ค. cedet์ค์น๋ cedet์ ์ค๋ช
ํด๋ ๋ถ๋ถ์์ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค. (์ฐธ๊ณ ๋ก emacs 23๋ถํฐ๋ ๋ด๋ถ์ ์ผ๋ก CEDET์ด ์ค์น๋์ด์๋ค.)
- ํ์ emacs์ ์ต์ ๋ฒ์ ผ์ 24.*๋์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฒ์ ผ๋์ emacs๋ ๋ด๋ถ์ ์ผ๋ก cedet์ด ์ค์น๋์ด์๋ค๊ณ ํ๋ค. ์ด cedet์ ๋ฒ์ ผ๊ณผ ecb์ ๋ฒ์ ผ ์ฌ์ด์ ๋ฒ๊ทธ๋๋ฌธ์ ecb ํ๊ฒฝ์ค์ ์ ํ๋ คํ๋ฉด ์ด๋ ค์์ด ๋ง๋ค. ์ด์ฌํ ์ฝ์งํด์ ์์๋ณธ ๊ฒฐ๊ณผ ์ด๋ค ์ธ๊ตญ ์ ์ฌ๋ถ์ด ๋ฒ๊ทธ fixํ reportํ๊ธฐ์ ์ ๋ฐ์์ด ๋ฆ์๊ฒ๊ฐ๊ธฐ์ ๋ฏธ๋ฆฌ github์ ์ฌ๋ ค๋์ ์์ ๋ฒ์ ์ด ์๋ค.(https://github.com/alexott/ecb/) ์ฌ๊ธฐ์์ ecb์ ์์ถํ์ผ์ ๋ฐ๋ ๊ฒ๋ถํฐ ์์์ ํ๋ค.
- ๋ฐ์ ์์ถํ์ผ์ .emacs.d ํด๋ ํน์ ์ํ๋ ๊ณณ์ ์์ถ์ ํผ๋ค.
- emacs ์ค์ ํ์ผ์ธ .emacs ํน์ init.el์ ๋ค์๊ณผ๊ฐ์ elisp ์ฝ๋๋ฅผ ์ ๋๋ค.
;;ECB Load (add-to-list 'load-path "ecb์์ถ์ ํผ ํด๋ ๊ฒฝ๋ก๋ฅผ ์ ์ต๋๋ค.") (load-file "ecb.el์ ํ์ผ๊ฒฝ๋ก๋ฅผ ์ ์ต๋๋ค. ์ด ํ์ผ์ ecb ์์ถ์ ํผ ํด๋ ์์ ์์ต๋๋ค.") (require 'ecb)
์ฐธ๊ณ #1. ๋๊ฐ์ ๊ฒฝ์ฐ, ๊ฒฝ๋ก๋ฅผ ์จ๋ฃ๋ ๋ถ๋ถ์ ์๋์ ๊ฐ์ด ์์ฑํ์ฟ๋ค.
(add-to-list 'load-path "~/.emacs.d/ecb-master")
(load-file "~/.emacs.d/ecb-master/ecb.el")
(add-to-list 'load-path "~/.emacs.d/ecb-master")
(load-file "~/.emacs.d/ecb-master/ecb.el")
ELPA ์ค์น์ ์ค์น ๋ฐฉ๋ฒ
- ์ค์น
- M-x package-list-packages
- C-s ecb
- ํด๋น ๋ผ์ธ์์ i ๋๋ฅธ ํ x
- ํด๋น ๋ผ์ธ์์ i ๋๋ฅธ ํ x
- M-x package-list-packages
- .emacs ์ค์
(require 'cl) (require 'ecb)
tabbar plugin ¶
์์คํ์ผ์ tabbar๋ฅผ ์ฐ๊ธฐ์ํ ํ๋ฌ๊ทธ์ธ์ด๋ค.
emacs wiki์ tabbar ๋ผ๊ณ ๊ฒ์ํ๋ฉด ์์ค๊ฐ ์ ๊ณต๋๋ค.
emacs ์ค์ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ์ ์์ค๋ฅผ ๋ณต์ฌํด์ tabbar.el์ด๋ผ๊ณ ์์คํ์ผ์ ๋ง๋ค์ด ์ ์ฅํ๋ค.
emacs ์ค์ ํ์ผ์ธ .emacs ํน์ init.el์ ๋ค์๊ณผ๊ฐ์ด ์ด์ด๋ถ์ด๋ฉด ์ฌ์ฉํ ์ ์๋ค.
;;Tabbar plugin load (require 'tabbar) (tabbar-mode t) (global-set-key [(control shift tab)]'tabbar-backward) (global-set-key [(control tab)]'tabbar-forward)
highline plugin ¶
์ปค์๊ฐ ์์นํ ์ค์ ์์ ๋ฌ๋ฆฌํ์ฌ ์ง๊ธ ์์
ํ๋ ๋ถ๋ถ์ ๋๋ ทํ ๋ณด์ฌ์ฃผ๋ ํ๋ฌ๊ทธ์ธ์ด๋ค.
emacs wiki์ highline ์ด๋ผ๊ณ ๊ฒ์ํ๋ฉด ์์ค๊ฐ ์ ๊ณต๋๋ค.
emacs ์ค์ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ์ ์์ค๋ฅผ ๋ณต์ฌํด์ highline.el์ด๋ผ๊ณ ์์คํ์ผ์ ๋ง๋ค์ด ์ ์ฅํ๋ค.
emacs ์ค์ ํ์ผ์ธ .emacs ํน์ init.el์ ๋ค์๊ณผ๊ฐ์ด ์ด์ด๋ถ์ด๋ฉด ์ฌ์ฉํ ์ ์๋ค.
;;Highline plugin load (require 'highline) (global-highline-mode t)
color-theme plugin ¶
emacs ๋ฐฐ๊ฒฝ์, ๊ธ์์ theme๋ฅผ ์ ๊ณตํ๋ ํ๋ฌ๊ทธ์ธ์ด๋ค.
emacs wiki์ color-theme ๋ผ๊ณ ๊ฒ์ํ๋ฉด ์์ถํ์ผ์ด ์ ๊ณต๋๋ค.
emacs ์ค์ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ์ color-theme์์ถํ์ผ์ ์์ถ์ ํผ๋ค.
emacs ์ค์ ํ์ผ์ธ .emacs ํน์ init.el์ ๋ค์๊ณผ๊ฐ์ด ์ด์ด๋ถ์ด๋ฉด ์ฌ์ฉํ ์ ์๋ค.
;;Color Theme plugin load (add-to-list 'load-path "color theme ํด๋ ๊ฒฝ๋ก๋ฅผ ์ ์ด์ค๋ค.") (require 'color-theme) (eval-after-load "color-theme" '(progn (color-theme-initialize) (color-theme-hober)))